我的stm32調試倒立擺的時候遇到奇葩小問題

在主函數while(1)中 只有oled顯示,在五毫秒中斷中有對電機的pid控制,我在這5ms中斷中printf三個數值。這時候波特率是9600或115200.結果測試程序的時候,printf可以打印出來但是oled不亮,當我把波特率調到自定義500000的時候,printf可以打印出來,oled也正常顯示。

思考:
這可能就是因爲波特率太小了,發送數據的時間過長,導致5ms中斷執行的時間差不多肯恩惡搞就5ms或者比5ms多,這時候就直接進入下一次5ms中斷了,導致while(1)中的oled顯示沒有執行的時間。

解決方法:
當然是加大波特率,使定時器中的printf佔用的的時間較少,騰出時間給定時中斷外的oled顯示。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章