tud_hid_report()怎么使用
时间: 2023-09-17 07:12:10 浏览: 319
函数tud_hid_report()是TinyUSB库中用于发送HID报告的函数。它的使用方式如下:
1. 首先,需要在你的代码中包含头文件 "tinyusb.h"。
2. 然后,在你的代码中定义一个与HID设备对应的结构体,可以使用tusb_hid_report_descriptor_t类型。例如:
```
tusb_hid_report_descriptor_t const midi_report_desc[] =
{
// Interface number, string index, protocol, report descriptor len, EP In & Out address, size & polling interval
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x81, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x01, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x82, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x02, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x83, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x03, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x84, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x04, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x85, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x05, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x86, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x06, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x87, 64, 10 },
{ 0, 0, HID_PROTOCOL_NONE, sizeof(midi_report), 0x07, 64, 10 },
{ 0, 0, 0, 0, 0, 0, 0 }, // end of report descriptor
};
```
其中,midi_report_desc是一个数组,用来描述HID设备的各个特性。这里只是一个示例,具体内容需要根据实际情况进行修改。
3. 在你的代码中调用tud_hid_report()函数,将要发送的HID报告数据写入到函数的参数buf中。例如:
```
void send_midi_report(uint8_t const *report, uint32_t len)
{
tud_hid_report(0, report, len);
}
```
其中,第一个参数0是HID接口的编号,如果你的设备只有一个HID接口,可以直接传入0;第二个参数report是一个指向要发送的HID报告数据的指针;第三个参数len是要发送的HID报告数据的长度。
4. 最后,将你的代码中的send_midi_report()函数调用放在适当的位置,以便在需要发送HID报告时进行调用。
注意:在使用tud_hid_report()函数之前,需要先调用tud_task()函数,以进行TinyUSB库的初始化。
阅读全文