移植了圈圈及NTHQ2004的 USB键盘实验在STM32上。
按键测试的时候,发现了这样的问题:
打开一个word文档,定位光标。然后按下一个键“KEY”,结果发现文档一直持续不停的写入“G”。
应该是没有发送按键释放消息,在按键松开以后,键盘还应该发一个“对应按键位置数据清0”的消息。
请教如何发送“对应按键位置数据清0”的消息。谢谢!
圈圈回复:发一个全0的包
可是在哪里发?都快把芯片试验坏了.....
我贴一下代码,您可以详细些告诉我要在哪里增加吗?我不是很清楚USB数据发送流程。
mian函数中while(1)
{
key=KEY_Scan(); //扫描一次键盘
if (key==1)
{
Joystick_Send(1); //发送按键
}
}
void Joystick_Send(u8 keys)
{
u8 Buffer[8] = {0, 0, 0, 0, 0, 0, 0, 0};
u8 i=2;
switch(keys)
{
case 1 : Buffer=c_usbKeyCode[10]; break; //0x0a, //key g
default: return;
}
UserToPMABufferCopy(Buffer,GetEPTxAddr(ENDP1), 8);
SetEPTxValid(ENDP1);
} |