leimao 发表于 2012-11-4 22:17:02

串口调试接收数据出错

m16每秒钟发送一个数据(第1秒发送1,第二秒发送2,直到7依次循环),但是在串口助手里接收到的数据却是81,82,83,84,85,86,87 晶振用的是7.3728,波特率9600,8为数据位,1位停止位,0校验位,串口助手那边也是如此设置,问下出现这种请况的原因是什么,是不是数据格式之间的问题,还是其他的,请大家帮帮忙,谢谢

eblc1388 发表于 2012-11-4 22:31:46

接收最後一位出错,极可能是波特率有偏差。看看你程式中的 UBRR 是否设定为47(0x2F)?

leimao 发表于 2012-11-5 20:36:56

eblc1388 发表于 2012-11-4 22:31 static/image/common/back.gif
接收最後一位出错,极可能是波特率有偏差。看看你程式中的 UBRR 是否设定为47(0x2F)? ...

哦哦,重新检查了一遍,发现校验位的寄存器少写了一个,太大意了,还是谢谢你的回答啊

maxims 发表于 2012-11-5 23:23:52

81,82,83,84,85,86,87不就对应的是1.2.3.4.5.6.7?ascii值啊~

maxims 发表于 2012-11-5 23:24:32

我也正在调试这个。。。

leimao 发表于 2012-11-7 22:42:29

maxims 发表于 2012-11-5 23:24 static/image/common/back.gif
我也正在调试这个。。。

好像不是哦,我是因为设置错了,才出现那种情况,你说的ascii码,我也考虑过,不过他们的关系好像是这样的,不知道你怎么理解的
十进制十六进制   你设置的数字
49         31             1
   50         32             2
   51         33             3
   52         34             4
   53         35             5
   54         36             6
   55         37             7
   56         38             8
   57         39             9

maxims 发表于 2012-11-7 23:34:33

本帖最后由 maxims 于 2012-11-7 23:36 编辑

leimao 发表于 2012-11-7 22:42 static/image/common/back.gif
好像不是哦,我是因为设置错了,才出现那种情况,你说的ascii码,我也考虑过,不过他们的关系好像是这样 ...

哎哟,记错了。。。不好意思

我的收到的是“00 80 00 80 00”之类的,ASCII显示出来“ε”
页: [1]
查看完整版本: 串口调试接收数据出错