串口通信 出现乱码
用ARM2103给电脑发送信息,用串口高度精灵看,一直接收的都是错误码。波特率换了好几档比如9600480024001200(我用的晶振是11M多点的那个)等都试过都是乱...
用ARM2103 给电脑发送信息,用串口高度精灵看,一直接收的都是错误码。
波特率 换了好几档 比如9600 4800 2400 1200(我用的晶振是 11M多点的那个) 等都试过 都是乱码 区别是一个乱码来得快 一个乱码来得慢 串口线 23 脚短接能正常的自收自发 下载到单片机的程序也没啥问题。
我只有200多了 全给了 希望帮忙解决 谢谢 展开
波特率 换了好几档 比如9600 4800 2400 1200(我用的晶振是 11M多点的那个) 等都试过 都是乱码 区别是一个乱码来得快 一个乱码来得慢 串口线 23 脚短接能正常的自收自发 下载到单片机的程序也没啥问题。
我只有200多了 全给了 希望帮忙解决 谢谢 展开
7个回答
展开全部
串口通讯不正常,我的分析如下:
一、能正常的自收自发,只能说明自身的收和发设置正确,需要检查ARM2103的设置和电脑的是否相同。同意4楼的说法,看看校验位,数据位数是否都对应上了。
二、波特率需要用示波器测试一下,发送一个0x55,看看,一bit用的时间,计算一下,看看波特率到底对不对。自收自发,说明收发双方波特率相同,看不出波特率对不对,这样就不用猜测是否是波特率的问题了。用实践检验。
三、如果串口高度精灵也能自收自发,上述都没问题,你就得考虑一下通讯电路的问题了。你的232通讯芯片如果供电是3.3V,芯片周围的电容用的是0.1uF,可能会出现这样的情况。你把4个0.1uF的改成1uF的试试吧,不同厂家的232芯片也会造成差异。我遇到过这种情况。如能改成5V供电就试试。
祝你顺利
一、能正常的自收自发,只能说明自身的收和发设置正确,需要检查ARM2103的设置和电脑的是否相同。同意4楼的说法,看看校验位,数据位数是否都对应上了。
二、波特率需要用示波器测试一下,发送一个0x55,看看,一bit用的时间,计算一下,看看波特率到底对不对。自收自发,说明收发双方波特率相同,看不出波特率对不对,这样就不用猜测是否是波特率的问题了。用实践检验。
三、如果串口高度精灵也能自收自发,上述都没问题,你就得考虑一下通讯电路的问题了。你的232通讯芯片如果供电是3.3V,芯片周围的电容用的是0.1uF,可能会出现这样的情况。你把4个0.1uF的改成1uF的试试吧,不同厂家的232芯片也会造成差异。我遇到过这种情况。如能改成5V供电就试试。
祝你顺利
展开全部
一个很常见的问题。十有八九你是校验位、停止位选错了。检查一下UxLCR寄存器设置。再看一下串口助手的校验位、停止位是不是一致。
DB9的2、3短接后,如果单位机自发自收,PC机自发自收都没有问题的情况下(有条件的话,拿逻辑分析仪,或者找个示波器也行)。基本上可以肯定是校验位、停止位的问题。
DB9的2、3短接后,如果单位机自发自收,PC机自发自收都没有问题的情况下(有条件的话,拿逻辑分析仪,或者找个示波器也行)。基本上可以肯定是校验位、停止位的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我用的44b0曾经出现过显示乱码的问题,在超级终端上显示的;
后来才发现是在boot汇编程序里设置了主频为60M;但是在串口初始化时用的是40M,在C语言程序里忘记重新设定主频了
呵呵,改了之后就好了
不知道你的是不是这样的
后来才发现是在boot汇编程序里设置了主频为60M;但是在串口初始化时用的是40M,在C语言程序里忘记重新设定主频了
呵呵,改了之后就好了
不知道你的是不是这样的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
曾几何时也试过
这关键还是波特率的问题
可能是实验板的跳线没弄对
又或者说是串口线本身就有问题。。。。
这关键还是波特率的问题
可能是实验板的跳线没弄对
又或者说是串口线本身就有问题。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用的是CodeWarrior for ARM Developer Suite
选得是 hex
选得是 hex
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询