單片機程序底層BUG問題,及解決方案


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/單片機知識點總結/directory.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

環形隊列串口發送數據BUG

凡是具有以下特點的程序皆有BUG

 

在串口中斷里面調用寫入數據到環形隊列函數

 

 

然后主循環里面也有調用寫入數據到環形隊列函數

 

 

造成的問題:跌機

 

造成問題的原因:

中斷可以打斷主循環里面調用環形隊列函數,如果主循環還沒有執行完環形隊列

然后接着中斷又開始調用環形隊列函數,那么就出了問題.

 

解決方案1: 在主循環調用的環形隊列函數前關閉中斷

 

 

 

 

 

 

解決方案2: 在中斷函數里面不調用環形隊列函數

 

 

 

總結: 總之就是避免中斷函數和主循環同時調用環形隊列函數存儲數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM