打印
[51单片机]

51单片机串口问题

[复制链接]
1174|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ldcung|  楼主 | 2014-4-11 22:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

在程序while循环中不断通过串口往上位机发送数据
        while(1)
        {
                SBUF=1;
                while(TI==0);
                TI=0;
         Delay_ms(500);
        }

本意是发送1,不知为何串口调试助手里接收到的都是0x81,这是为何呢?请高手指点

相关帖子

沙发
天风立马| | 2014-4-11 22:55 | 只看该作者
检查一下波特率。

使用特权

评论回复
板凳
ayb_ice| | 2014-4-12 06:54 | 只看该作者
可能波特率不对,也可能配置不对

使用特权

评论回复
地板
张志辉| | 2014-4-12 07:15 | 只看该作者
我也认为是波特率的问题!好好看一下!

使用特权

评论回复
5
牛牛牛| | 2014-4-12 08:26 | 只看该作者
出现这种情况,波特率设置出错的问题大一些

使用特权

评论回复
6
coody| | 2014-4-12 10:56 | 只看该作者
严查波特率

使用特权

评论回复
7
ldcung|  楼主 | 2014-4-12 11:33 | 只看该作者

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

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝