标题: STM32程序为什么只要加上这些按键判断就没反应 [打印本页]

作者: sam123333    时间: 2021-7-9 22:13
标题: STM32程序为什么只要加上这些按键判断就没反应
用的是野火的霸道f103zet6
我是想通过5个按键来进行调试  其中2个是开发板上的,我外接了3个按钮想通过按键方式进行调速。但只要加上3个if判断,前面2个if就会失效或者卡死。。。

代码附上 。。。向大佬们求助

代码有点凌乱,小白一枚

51hei图片_20210709220709.png (368.93 KB, 下载次数: 56)

51hei图片_20210709220709.png

无线调速.7z

192.97 KB, 下载次数: 6


作者: yzwzfyz    时间: 2021-7-10 08:21
是不是上面要做的事还没的来得及做,下面的事件就发生了。
作者: wwx123456    时间: 2021-7-10 11:54
首先判断下是不是真的失效,还是只是运行通过了;然后外接的这几个GPIO口,有没有消抖,会不会和其他冲突了

作者: sam123333    时间: 2021-7-10 16:44
yzwzfyz 发表于 2021-7-10 08:21
是不是上面要做的事还没的来得及做,下面的事件就发生了。

我试过把上面的2个if注释掉,只留下面3个if,结果还是一样 都是没反应的;我也试过不屏蔽(5个if都在)debug蓝色的三角形符号就到这里 if(Key_Scan(KEY3_GPIO_PORT, KEY3_GPIO_PIN) == KEY_ON)  ;
作者: sam123333    时间: 2021-7-10 17:00
wwx123456 发表于 2021-7-10 11:54
首先判断下是不是真的失效,还是只是运行通过了;然后外接的这几个GPIO口,有没有消抖,会不会和其他冲突了 ...

我加了延时,结果还是一样的。。  我也换过其他的gpio
作者: zpwgf    时间: 2021-7-11 16:22
我个人觉得如果实在没法使用按键扫描那就改用按键中断吧,这样出错的机率会小点
作者: sam123333    时间: 2021-7-15 19:18
zpwgf 发表于 2021-7-11 16:22
我个人觉得如果实在没法使用按键扫描那就改用按键中断吧,这样出错的机率会小点

好的,谢谢你提的建议
作者: gain    时间: 2021-7-16 11:07
第一 要延时消抖 第二 看看你外加的按键电路是把io拉低还是拉高 建议你io配置浮空输入试试,o
作者: sam123333    时间: 2021-7-16 21:53
gain 发表于 2021-7-16 11:07
第一 要延时消抖 第二 看看你外加的按键电路是把io拉低还是拉高 建议你io配置浮空输入试试,o

好的  谢谢你的建议




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1