微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机串口发送问题

51单片机串口发送问题

时间:10-02 整理:3721RD 点击:
在程序while循环中不断通过串口往上位机发送数据
        while(1)
        {
                SBUF=1;
                while(TI==0);
                TI=0;
         Delay_ms(500);
        }
本意是发送1,不知为何串口调试助手里接收到的都是0x81,这是为何呢?请高手指点

试一下        SBUF=‘1’;

这种情况几乎可以肯定是波特率不对。

问题已解决,谢谢各位的回答。确实是波特率设置的问题,我用的是12M的晶振,按照别人的程序把波特率设置成了9600,结果总是出现问题,后来发现如果是12M的频率频率最好不要超过4800,要不然会导致实际波特率值和理论波特率值相差很大,导致数据在传输过程中出现问题。51单片机波特率T1初始值及相应误差如下表


由此可见如果用11.0592M的晶振那是没有误差的,用12M的晶振就会使波特率理论值和实际值存在误差,我按照表中所示,把波特率设置成4800,数据传输正常。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top