笙泉MA505_24,串口打印乱码问题解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/agave7/article/details/38043297

最近在用笙泉的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电压,避免再出现这种小错误。



猜你喜欢

转载自blog.csdn.net/agave7/article/details/38043297