电路部分:
故障描述:
- 中断模式下按键按下中断无响应,换成output模式读GPIO也无反应
事后翻盘:按键地和电源地不通
解决: 用示波器测试按键地,发现按下按键之后竟然是高电平。地被拉高考虑为虚焊,之前肉眼去测试没问题,用万用表在开关两侧打表也没问题。就忽略了。后面师傅教我用万用表测通断–》问题总结为按键地和电源地不通。2020/9/5 - STM32单片机有两个波轮开关,能在main函数里读出相应的电平变化,进不去其中一个波轮开关的中断(K1能进去,K2不能进),
事后翻盘:中断0-1/2-3需要在CUBE中的NVIC里面手动使能。
解决:
1.当开关按下时,在CUBE中查看K1-CW为中断12,K2-cw为中断0,遂去源代码中找原因
2.源代码中只有一个函数蛮像的,可以看出它涵盖了12/14/15,大概猜出原因是没有写关于0号中断,模仿着手写一个无效之后,师傅的帮助下打开CUBE配置NVIC就解决了。
如下图所示,之前没有使能0/1中断。这个原因其实我能猜出来,毕竟还是看过手册来的,问题总结为对CUBE的使用不熟悉。
使能之后源代码: