關於微控制器串列埠傳送時初始傳送的資料第一個總是00的問題解決
阿新 • • 發佈:2018-12-31
在除錯STM8的串列埠時候,串列埠IO初始化,串列埠配置,傳送資料除錯~~
連線好串列埠線後,發現初始化後傳送的第一個資料總是00,後面的資料才是正常的資料。
折騰了大半天,終於發現了原因了,那就是初始化串列埠後不能馬上傳送資料,要經過一定時間延遲。
問題程式碼如下:
<span style="white-space:pre"> </span>CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//執行在16Mhz Init_GPIO(); InitTimer4(); InitTimer2(); InitUart(); _asm("rim"); //開啟總中斷 SendString("HelloStm8!"); SendString("HelloStm9!");
修改後問題解決的程式碼:
<span style="white-space:pre"> </span>CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//執行在16Mhz
InitUart();
Init_GPIO();
InitTimer4();
InitTimer2();
_asm("rim"); //開啟總中斷
SendString("HelloStm8!");
SendString("HelloStm9!");