51单片机12M晶振设置波特率为62500乱码,求解释

[复制链接]
4725|14
 楼主| 2012CMD 发表于 2013-5-23 10:03 | 显示全部楼层 |阅读模式
按照51手册波特率计算式为
baudrate=((2^SMOD)/32)*(Fosc/(12*(256-TH)))
同时芯片手册也给出几个典型值

可是为什么我设置成62500是乱码呢??

晶振12M,实际测试是只能用2400通信正常,串口芯片为PL2303(USB to Serial),误差为0.16%

按道理说62500应该比2400更准确啊,因为他误差率为0,可是为什么实际不正常呢???


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ayb_ice 发表于 2013-5-23 10:06 | 显示全部楼层
你两个同样的51,62500肯定没有问题的,关键是双方不一致
 楼主| 2012CMD 发表于 2013-5-23 10:10 | 显示全部楼层
ayb_ice 发表于 2013-5-23 10:06
你两个同样的51,62500肯定没有问题的,关键是双方不一致

是一致的,软件程序为62500(SMOD=1,TH1=TL1=0xFF),串口波特率也为62500

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 2012CMD 发表于 2013-5-23 10:12 | 显示全部楼层
ayb_ice 发表于 2013-5-23 10:06
你两个同样的51,62500肯定没有问题的,关键是双方不一致

这是我的程序
.....................................
void uart_init(void)
{
    TMOD=0x20;//即0010 0000,定时器/计数器1,工作方式2
    TH1=0xff;//设置波特率为62500
    TL1=0xff;
    TR1=1;//启动定时器/计数器1
   
    SCON=0x50; //0101 0000.串口工作方式1,允许串行控制
    PCON=0x80;//设置SMOD=1
    IE=0x90; //CPU允许中断,串行允许中断
}
.....................................

dirtwillfly 发表于 2013-5-23 11:14 | 显示全部楼层
数据位、校验位等等这些设置是一样的吗
ayb_ice 发表于 2013-5-23 11:24 | 显示全部楼层
设置应该没有问题,检查程序
 楼主| 2012CMD 发表于 2013-5-23 11:45 | 显示全部楼层
ayb_ice 发表于 2013-5-23 11:24
设置应该没有问题,检查程序

应该不是程序的问题,因为proteus仿真是OK的
lcdi 发表于 2013-5-23 11:48 | 显示全部楼层
那也许是PL2303兼容性不好,用CP2102的或者FT232的试试看?
 楼主| 2012CMD 发表于 2013-5-23 11:59 | 显示全部楼层
lcdi 发表于 2013-5-23 11:48
那也许是PL2303兼容性不好,用CP2102的或者FT232的试试看?

手上木有这两个芯片,只有MAX232,也试过,不过问题一样
不知道是不和波特率过高有关,传输二进制位速度太快了????
lcdi 发表于 2013-5-23 12:05 | 显示全部楼层
2012CMD 发表于 2013-5-23 11:59
手上木有这两个芯片,只有MAX232,也试过,不过问题一样
不知道是不和波特率过高有关,传输二进制位速度 ...

MAX232试过那就没办法了~如果你的试验环境干扰不是很厉害,串口线也不会长的话,这个速度算不上高,有没有示波器测一下单片机出来的波形,看看波特率对不?
dtlz 发表于 2013-5-28 22:45 | 显示全部楼层
TMOD=0x20;//即0010 0000,定时器/计数器1,工作方式2

手册那里说需要工作为方式1/3
你没有注意这个?
enj08 发表于 2013-12-30 20:51 | 显示全部楼层
我也想问一下,0.16%误差对通信的影响是什么?需要注意什么?
vkic007 发表于 2013-12-31 10:33 | 显示全部楼层
enj08 发表于 2013-12-30 20:51
我也想问一下,0.16%误差对通信的影响是什么?需要注意什么?

我觉得这样的误差一般没有什么影响,串口本上就有比较好的容错机制,而且通常误差在3%以内应该都可以正常通信。
ghl111 发表于 2013-12-31 16:16 | 显示全部楼层
自己拿个示波器观察一下串行数据的波形,测量一下波特率吧,多半时波特率的问题
jqbkl007 发表于 2013-12-31 17:10 | 显示全部楼层
用11.0592就可以了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

80

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部