串口通信 出现乱码

用ARM2103 给电脑发送信息,用串口高度精灵看,一直接收的都是错误码。
波特率 换了好几档 比如9600 4800 2400 1200(我用的晶振是 11M多点的那个) 等都试过 都是乱码 区别是一个乱码来得快 一个乱码来得慢 串口线 23 脚短接能正常的自收自发 下载到单片机的程序也没啥问题。

我只有200多了 全给了 希望帮忙解决 谢谢

串口通讯不正常,我的分析如下:
一、能正常的自收自发,只能说明自身的收和发设置正确,需要检查ARM2103的设置和电脑的是否相同。同意4楼的说法,看看校验位,数据位数是否都对应上了。
二、波特率需要用示波器测试一下,发送一个0x55,看看,一bit用的时间,计算一下,看看波特率到底对不对。自收自发,说明收发双方波特率相同,看不出波特率对不对,这样就不用猜测是否是波特率的问题了。用实践检验。
三、如果串口高度精灵也能自收自发,上述都没问题,你就得考虑一下通讯电路的问题了。你的232通讯芯片如果供电是3.3V,芯片周围的电容用的是0.1uF,可能会出现这样的情况。你把4个0.1uF的改成1uF的试试吧,不同厂家的232芯片也会造成差异。我遇到过这种情况。如能改成5V供电就试试。
祝你顺利
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-03
一个很常见的问题。十有八九你是校验位、停止位选错了。检查一下UxLCR寄存器设置。再看一下串口助手的校验位、停止位是不是一致。

DB9的2、3短接后,如果单位机自发自收,PC机自发自收都没有问题的情况下(有条件的话,拿逻辑分析仪,或者找个示波器也行)。基本上可以肯定是校验位、停止位的问题。
第2个回答  推荐于2017-11-23
我用的44b0曾经出现过显示乱码的问题,在超级终端上显示的;
后来才发现是在boot汇编程序里设置了主频为60M;但是在串口初始化时用的是40M,在C语言程序里忘记重新设定主频了
呵呵,改了之后就好了

不知道你的是不是这样的本回答被提问者采纳
第3个回答  2010-08-19
曾几何时也试过

这关键还是波特率的问题

可能是实验板的跳线没弄对

又或者说是串口线本身就有问题。。。。
第4个回答  2010-08-03
用的是CodeWarrior for ARM Developer Suite
选得是 hex

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网