串口 接收和发送的数据不一致

[复制链接]
4907|29
 楼主| guoyt 发表于 2014-7-12 19:53 | 显示全部楼层
把波特率改成4800就正常收发数据了,可是我的设置应该波特率是19200啊,很奇怪。
是波特率错了还是时钟设置错了呢?
wangpe 发表于 2014-7-12 19:54 | 显示全部楼层
我也用的串口1,PCON的BIT7是设置SMOD的,SMOD=1的时候表示的是波特率加倍,你的波特率如果为19200的话,并且你的时钟选择的是48M的话,TH1=-2*(48000000/384)/19200
zhuww 发表于 2014-7-12 19:55 | 显示全部楼层
出现你的问题不奇怪,你的问题应该是TH1的赋值上,你去看看TH1的值得到的公式!跟C51的串口设置是一样的
 楼主| guoyt 发表于 2014-7-12 19:56 | 显示全部楼层

用示波器看过了CLKOUT引脚,发现输出是12MHZ。
我的CPUCS寄存器是设置的CPUCS=0X10,按道理来说输出应该是48MHZ啊。
时钟设置的问题在哪?
wangpe 发表于 2014-7-12 19:57 | 显示全部楼层
那就不懂了。。。
lium 发表于 2014-7-12 19:58 | 显示全部楼层
建议用数字示波器捕捉一个你发送的数据波形,仔细分析时序。
lium 发表于 2014-7-12 19:59 | 显示全部楼层
如果时序有问题,必然是程序配置出现错误。这当中没有所谓奇怪的事情。
 楼主| guoyt 发表于 2014-7-12 20:01 | 显示全部楼层
算了,明天问问师父吧
pleasemissme 发表于 2014-7-12 22:04 | 显示全部楼层
串口0,是串口1  两个不同的概念啊, 大佬
kk5290122 发表于 2014-7-13 20:38 | 显示全部楼层
应该是配置有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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