1. 程式人生 > >關於微控制器串列埠傳送時初始傳送的資料第一個總是00的問題解決

關於微控制器串列埠傳送時初始傳送的資料第一個總是00的問題解決

在除錯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!");