串口接收数据出错

[复制链接]
2557|4
 楼主| edisontang 发表于 2008-3-3 10:27 | 显示全部楼层 |阅读模式
串口接收数据出错&nbsp;<br /><br /><br />在arm9平台下扩展了一个SC16C550的芯片,驱动就用的现成的8250.c,只是添加了一些配置信息(定义了&nbsp;STD_SERIAL_PORT_DEFNS这个宏,主要是配置基地址,中断等信息&nbsp;,并在8250.c的serial8250_init函数里初始化了这个扩展芯片,主要是配置它的基地址,中断等信息,这里的信息是和STD_SERIAL_PORT_DEFNS中的信息是匹配的),现在采用的是中断,fifo模式&nbsp;<br /><br /><br />现象:&nbsp;<br />接收数据的时候,如果对方发送一个字节,那这边是无法收到的(此时中断是产生了,产生的是超时中断,但是读取LSR的寄存器的时候,总是认为没有收到数据),如果对方发送4个字节,第一个字节也是收不到的,即收到了3个字节。&nbsp;<br /><br />这种问题的原因是什么呢?如何解决呢?&nbsp;<br /><br />后来换了一片ST16c550,还是同样的问题。<br />&nbsp;<br />&nbsp;<br />
wangkj 发表于 2008-3-3 10:33 | 显示全部楼层

用示波器量一下,数数信号,看是硬件问题还是软件问题先

  
1yumao 发表于 2013-11-2 15:01 | 显示全部楼层
wangkj 发表于 2008-3-3 10:33

如果是硬件问题仅仅就是指波特率吗
你好陌生人 发表于 2013-11-2 22:19 | 显示全部楼层
串口一般出问题都是波特率的问题 ,我这两天的问题大部分都是波特率设置是出的问题,接受发送不到数据
sogo 发表于 2013-11-5 11:10 | 显示全部楼层
初始状态不对,在接收第一个字节时产生超时中断,再次配置时才正确!和波特率,初始电平等有关系,还有一种特殊情况:需要先读一下接收寄存器以清空该寄存器。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

104

帖子

0

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