我的单片机是STC90C516 晶振12M 波特率9600 配置如下:

[复制链接]
查看11 | 回复1 | 2011-7-26 01:50:38 | 显示全部楼层 |阅读模式
TMOD = 0x20;                                // 定时器T1使用工作方式2
TH1 = 249;
TL1 = 249;
PCON = 0x80;                                // SMOD = 1
SCON = 0x50;                                // 工作方式1,波特率9600kbit/s,允许接收
IP=0x10;
// IPH=0X10;
ES=1;
TR1 = 1;       
发出的数据是错误的
请问是怎么回事

回复

使用道具 举报

千问 | 2011-7-26 01:50:38 | 显示全部楼层
STC官网不是提供了一个“STC波特率计算器”吗,输入要求自动生成C或者汇编代码,用它多方便。 帮你计算了下,STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据不出错才怪。这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行