stm32串口收发导致的死机
很久以前有偶尔遇到过串口死机的情况,那是当时的我写出来的代码自己都觉得有问题,也就没注意。用了stm32做项目以后也就没遇到过了,今天做了个高压测试,每5ms定时发送一次,结果挂了,而且仿真只能看到程序在乱飞。这回认真做了测试分析,得到以下结论。
我认为之所以导致死机的原因是串口中断没办法及时处理外设缓存的数据。因此,在使用串口应注意:
串口中断中,不管是什么数据,先收了再说。
条件允许的话,串口中断设置为抢占优先级。
同等级中断函数中,尽量不占用过多的时间。