你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

F103的键盘程序调不出来

[复制链接]
signet 提问时间:2017-3-30 22:06 /
请教各位高手,我更改了一个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);
                          }
     }

**********************************************************************************
加了红色部分的代码后,完全不输出键值了,为什么呢?请给位高手帮忙解答下

键值显示

键值显示


收藏 1 评论2 发布时间:2017-3-30 22:06

举报

2个回答
斜阳__ 回答时间:2017-3-31 11:06:30
红色部分可能在会构成长期循环。用if进行判断
toofree 回答时间:2017-3-31 13:42:53
你这属于程序逻辑问题呀。
给你提示一下,记住上一次查询的状态。
当前状态与前一次的状态比较,如果不同,那么就发送按下或抬起的键值。
当然要做的好的话,需要加去抖操作。

所属标签

相似问题

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版