找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7589|回复: 12
打印 上一主题 下一主题
收起左侧

波特率是9600的时候,串口显示软件,输出乱码,请教。

[复制链接]
跳转到指定楼层
楼主
ID:161933 发表于 2017-3-1 19:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void UsartConfiguration()
{
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X20;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;        //计数器初始值设置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                //打开接收中断
        EA=1;                                //打开总中断
        TR1=1;                                //打开计数器
}

TH1=0XF3;        //计数器初始值设置,注意波特率是4800的
TL1=0XF3;

波特率是4800的时候,串口显示软件,输出正常。

TH1=0XF9;        //计数器初始值设置,注意波特率是9600的
TL1=0XF9;

波特率是9600的时候,串口显示软件,输出乱码。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:85726 发表于 2017-3-1 20:56 | 只看该作者
注意晶振的频率!
回复

使用道具 举报

板凳
ID:161933 发表于 2017-3-1 22:46 来自手机 | 只看该作者
ning 发表于 2017-3-1 20:56
注意晶振的频率!

89c52接的晶振是12MHZ。
回复

使用道具 举报

地板
ID:161933 发表于 2017-3-1 22:47 来自手机 | 只看该作者
ning 发表于 2017-3-1 20:56
注意晶振的频率!

定时器1赋初值也没问题呀!
回复

使用道具 举报

5#
ID:85726 发表于 2017-3-2 09:03 | 只看该作者
12MHZ是存在一定的误差的!换成11.0592试试!
回复

使用道具 举报

6#
ID:161933 发表于 2017-3-2 21:47 | 只看该作者
ning 发表于 2017-3-2 09:03
12MHZ是存在一定的误差的!换成11.0592试试!

回头试试
回复

使用道具 举报

7#
ID:113415 发表于 2017-3-3 10:20 | 只看该作者
据我的经验,波特率误差必须小于3%才能可靠地进行通讯,超过后就难以保证了。
回复

使用道具 举报

8#
ID:123289 发表于 2017-3-4 02:12 | 只看该作者
通讯的双方都要改。
回复

使用道具 举报

9#
ID:111634 发表于 2017-3-4 07:49 | 只看该作者
串口通讯应该用11.0592,12MHz会产生波特率误差,但一次传输字节不多时不至于输出乱码,楼主程序可能还有其他问题。
回复

使用道具 举报

10#
ID:168104 发表于 2017-3-4 14:21 | 只看该作者
晶振是11.0592吗?
回复

使用道具 举报

11#
ID:168179 发表于 2017-3-4 20:40 | 只看该作者
串口显示软件是否对应设置为9600.
回复

使用道具 举报

12#
ID:160607 发表于 2017-3-5 11:23 | 只看该作者
4800时是正常的?如果正常应该就是晶振,可以选个误差比较小的速率。
回复

使用道具 举报

13#
ID:168307 发表于 2017-3-5 14:47 | 只看该作者
1、串口显示软件的波特率没有匹配;2、下位机波特率配置的并不是9600
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表