msp430f4152,带一个32768的手表晶体,工作在4M,串口0,在波特率4800,EVEN时,通讯正常,9600,无校验时,也正常。但是在波特率9600,EVEN时,不正常,出现乱码;9600,ODD时,也不正常,出现乱码。
灰小子:
EVEN?
楼主用的汇编?官网有类似例程的,可以参考一下。
Jacky Xu:
和奇偶校验没关系,奇偶校验只要通讯的两端一致就可以。
9600通讯的时候是从来一点都不对,还是会出现乱码?你要看下你到底用的32.768k作为UART时钟还是4M作为时钟。如果是32.768k作为时钟,在9600波特率下出现误码率高是很自然的事情。数据手册上有详细的使用什么时钟在何种波特率下,各自对应的误码率。看了就明白了。
本身和奇偶校验没关系。当然你通讯两端的奇偶校验如果不匹配那也是不行的。
HG:
这一位配置了么?
把频率改变一下有改变么?还是从来都不对?
qingmin zhang:
回复 Jacky Xu:
1、9600是用4M最为时钟;2、加上校验时,误码率大概为40%,也有正确的,不加校验时,全正确;3、通讯两端和单片机的校验位是一样的。
灰小子:
回复 qingmin zhang:
楼主是用上位机串口调试软件测试的吗?有没有换个上位机的软件试试?
qingmin zhang:
回复 灰小子:
换了。用modbuspoll也试了,还是一样的。附上我的原理图