USBD_CUSTOM_HID_SendReport发送d不断发送

USBD_CUSTOM_HID_SendReport发送d不断发送

USBD_CUSTOM_HID_SendReport发送d不断发送

USBD_CUSTOM_HID_SendReport发送d不断发送

USBD_CUSTOM_HID_SendReport发送d不断发送

解答:

所以需要往数据区域写入零数据,才会停止按键发送。当我把代码改成下面这样 作者:风顾兰草 https://www.bilibili.com/read/cv10067509/ 出处:bilibili

memset(&Buf,0,sizeof(Buf);
Buf[0] = 0x03;
HAL_Delay(1000);
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, (uint8_t *)&Buf, sizeof(Buf));

 

错误:

ddddd
ddddd
ddddd
dd

为什么??

 

相同问题:https://www.bilibili.com/read/cv10067509/

(此时也许是电脑认为的短按与长按的临界值)  

与延时有关

// HAL_Delay(1000);
uint8_t Buf[9]={0,0,0,0,0,0,0,0,0};
// Buf[1]=0x07;
Buf[0] = 0x03;
Buf[3] =0x07;
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, (uint8_t *)&Buf, sizeof(Buf));
memset(&Buf,0,sizeof(Buf));
Buf[0] = 0x03;
HAL_Delay(90);
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, (uint8_t *)&Buf, sizeof(Buf));
HAL_Delay(90);

 

时长版:

// HAL_Delay(1000);
uint8_t Buf[9]={0,0,0,0,0,0,0,0,0};
// Buf[1]=0x07;
Buf[0] = 0x03;
Buf[3] =0x07;
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, (uint8_t *)&Buf, sizeof(Buf));
memset(&Buf,0,sizeof(Buf));
Buf[0] = 0x03;
HAL_Delay(50);
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, (uint8_t *)&Buf, sizeof(Buf));

posted on 2022-11-10 04:43  lydstory  阅读(296)  评论(0)    收藏  举报

导航