F103的键盘程序调不出来
请教各位高手,我更改了一个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);
}
}
**********************************************************************************
加了红色部分的代码后,完全不输出键值了,为什么呢?请给位高手帮忙解答下
红色部分可能在会构成长期循环。用if进行判断 你这属于程序逻辑问题呀。
给你提示一下,记住上一次查询的状态。
当前状态与前一次的状态比较,如果不同,那么就发送按下或抬起的键值。
当然要做的好的话,需要加去抖操作。
页:
[1]