1. 程式人生 > >笙泉MA505_24,串列埠列印亂碼問題解決

笙泉MA505_24,串列埠列印亂碼問題解決

最近在用笙泉的MA805_24晶片,在除錯串列埠時總是出現串列埠打印出亂碼問題,22.1184MHZ的晶振,波特率設定為9600,


AUXR2 |= 1<<6;    //選擇SYSCLK作時鐘源
TMOD &= 0x0F;  //使用定時器1 8位自動過載為波特率發生器
TMOD |= 0x20;


    TH1 = 256-(SYSCLK)/(32*UART0_BAUDRATE);  //SYSCLK=1T,SMOD2=0,SMOD1=0;時的波特率計算。


ET1 = 0;
TR1 = 1;

程式上找不出問題,只能在硬體上找問題,最後發現MCU的VDD電壓為4.3V 偏低,正常工作電壓為4.5V到5.5V,於是把VDD改成了5V,問題得以解決。

總結一下,之前一直沒懷疑是電壓問題是因為同樣4.3V供電時MCU可以跑起來,燈也能閃,按鍵也能用,經過我程式驗證得出系統頻率為0.6131MHZ,與標準22.1184MHZ不符合,這才猜想有可能是供電電壓不夠引起的,果真如此,以後一定要按照MCU手冊來給MCU電壓,避免再出現這種小錯誤。