stm8s207上发生的,记录几个花时间折腾过的问题。
1.新款指纹锁的方案相对去年的方案有点改动
a. 更换了指纹传感器。用的还是uart1接口,但是波特率由9600bps变成了115200bps. 上层协议不一样
b. 添加蓝牙开锁接口。使用uart3接口。
2.相关修改
a. uart接口及协议作相关修改后,指纹传感器的可靠性极差,试用3次就有2次没反应,甚至死机。
通过在uart线路上抓取数据包发现,stm8s207可以正常发出数据。
通过stm8s207发出收到的数据,发现缺少数据,以此认定uart接收部分有问题。
通过在线设置断点发现,死机时,程序在退出接收中断后,又立即再次进入接收中断。
1>. 波特率问题,考虑到更换指纹传感器前没有任何问题,猜测可能是传输速度问题,用中断代替轮询,解决数据丢失的问题。可靠性大幅提高,但仍有死机现象发生。
2>. 中断设定部分,只开启RX接收中断(原来的开启了接收和接收溢出),解决因重复进入RX接收中断而产生的死机的故障。
实验中没有找到清除“接收溢出”中断标记的方法,有办法绕过的坑,懒得花时间填坑了!
b. 蓝牙开锁功能需要用到定时唤醒功能
故障表现:唤醒后立即死机
1>. 多方折腾后发现,是在休眠前的关闭外设时,顺便把awu也关了。注释掉相关代码故障即消除
阅读(1049) | 评论(0) | 转发(0) |