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));