stm32串口收發導致的死機
很久以前有偶爾遇到過串口死機的情況,那是當時的我寫出來的代碼自己都覺得有問題,也就沒注意。用了stm32做項目以后也就沒遇到過了,今天做了個高壓測試,每5ms定時發送一次,結果掛了,而且仿真只能看到程序在亂飛。這回認真做了測試分析,得到以下結論。
我認為之所以導致死機的原因是串口中斷沒辦法及時處理外設緩存的數據。因此,在使用串口應注意:
串口中斷中,不管是什么數據,先收了再說。
條件允許的話,串口中斷設置為搶占優先級。
同等級中斷函數中,盡量不占用過多的時間。