- 注册时间
- 2014-8-10
- 最后登录
- 2014-8-16
- 阅读权限
- 10
- 积分
- 15
- 精华
- 0
- 帖子
- 3
|
baiheee 发表于 2014-8-11 17:30
发送一次按键按下报告包后,还应该再向主机发送一次此按键弹起的报告包,否则主机认为此键长按。你抓取的数 ...
问题已解决,正是baiheee说的问题。谢谢啦!
我在其他几个地方调用了hid_key_send发送00 00,导致00 00多次发送。
我现在修改了,将00 00就放在hid_key_send里面完成。修改后如下
void hid_key_send2(unsigned char key)
{
memset (Send_Buffer, 0, SEND_BUF_SIZE);
Send_Buffer[0] = key;
Send_Buffer[1] = 0;
while (EP_TX_NAK != GetEPTxStatus(ENDP1))
;
UserToPMABufferCopy(Send_Buffer, GetEPTxAddr(ENDP1), SEND_BUF_SIZE_ONLY_UP_DOWN);
SetEPTxCount(ENDP1, SEND_BUF_SIZE_ONLY_UP_DOWN);
SetEPTxValid(ENDP1);
Send_Buffer[0] = 0x00;
while (EP_TX_NAK != GetEPTxStatus(ENDP1))
;
UserToPMABufferCopy(Send_Buffer, GetEPTxAddr(ENDP1), SEND_BUF_SIZE_ONLY_UP_DOWN);
SetEPTxCount(ENDP1, SEND_BUF_SIZE_ONLY_UP_DOWN);
SetEPTxValid(ENDP1);
} |
|