请教各位高手,我更改了一个STM32F103C8T6核心板的USB HID键盘例程,想实现的目标是按一个按键(下拉PORTB0,不松开),USB输出一个键盘的的按键动作, 并且只输出一次按键动作,目前的程序实现了按键后,能够输出键盘按键动作,可是不能实现只输出一次,会一直出按键,能够用的代码如下: while(1) // { if(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)) { GPIO_ResetBits(GPIOB,GPIO_Pin_0);//点亮LED指示灯 Keyboard_Send(USB_SBUF); Keyboard_Send(USB_SBUF_Zero); Delay(1100); //while(!GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)){} } else { Keyboard_Send(USB_SBUF_Zero);//关掉LED指示灯 GPIO_SetBits(GPIOB,GPIO_Pin_0); Delay(1100); } } ********************************************************************************** 加了红色部分的代码后,完全不输出键值了,为什么呢?请给位高手帮忙解答下 é®å¼æ¾ç¤º |
给你提示一下,记住上一次查询的状态。
当前状态与前一次的状态比较,如果不同,那么就发送按下或抬起的键值。
当然要做的好的话,需要加去抖操作。