打印

串口接收数据出错

[复制链接]
1238|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
edisontang|  楼主 | 2008-3-3 10:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口接收数据出错 


在arm9平台下扩展了一个SC16C550的芯片,驱动就用的现成的8250.c,只是添加了一些配置信息(定义了 STD_SERIAL_PORT_DEFNS这个宏,主要是配置基地址,中断等信息 ,并在8250.c的serial8250_init函数里初始化了这个扩展芯片,主要是配置它的基地址,中断等信息,这里的信息是和STD_SERIAL_PORT_DEFNS中的信息是匹配的),现在采用的是中断,fifo模式 


现象: 
接收数据的时候,如果对方发送一个字节,那这边是无法收到的(此时中断是产生了,产生的是超时中断,但是读取LSR的寄存器的时候,总是认为没有收到数据),如果对方发送4个字节,第一个字节也是收不到的,即收到了3个字节。 

这种问题的原因是什么呢?如何解决呢? 

后来换了一片ST16c550,还是同样的问题。
 
 

相关帖子

沙发
wangkj| | 2008-3-3 10:33 | 只看该作者

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

使用特权

评论回复
板凳
1yumao| | 2013-11-2 15:01 | 只看该作者
wangkj 发表于 2008-3-3 10:33

如果是硬件问题仅仅就是指波特率吗

使用特权

评论回复
地板
你好陌生人| | 2013-11-2 22:19 | 只看该作者
串口一般出问题都是波特率的问题 ,我这两天的问题大部分都是波特率设置是出的问题,接受发送不到数据

使用特权

评论回复
5
sogo| | 2013-11-5 11:10 | 只看该作者
初始状态不对,在接收第一个字节时产生超时中断,再次配置时才正确!和波特率,初始电平等有关系,还有一种特殊情况:需要先读一下接收寄存器以清空该寄存器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

104

帖子

0

粉丝