打印

请教STR912的串口FIFO问题

[复制链接]
2237|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
armnew|  楼主 | 2007-12-26 22:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用到912的串口,需要向PC发送比较多的数据,而pc只向912发送简单的控制命令。

现在的问题是,如果打开串口的FIFO的话,接收pc发来的命令会收不全,比如我把接受FIFO的触发设置成UART_FIFOLevel_1_4,那么如果PC发的命令是6个字节的话,就会只收到4个,另外两个在下一次发送的时候才能收到。
而如果把FIFO关掉,向PC发送的效率就比较低。
请问该怎样处理呢?
沙发
一览| | 2007-12-27 08:38 | 只看该作者

可用接收超时中断

可用接收超时

使用特权

评论回复
板凳
STF| | 2007-12-27 10:58 | 只看该作者

数据受到但是没有中断

你好

你用FIFO_1_4的话,串口受到4个字节之后会发一个中断 :

11.4.9 Interrupt FIFO Level Select Register (UART_IFLS)

RXIFLSEL: Receive Interrupt FIFO Level Select
The trigger points for the receive interrupt are as follows:
000 = Receive FIFO becomes >= 1/8 full
001 = Receive FIFO becomes >= 1/4 full
010 = Receive FIFO becomes >= 1/2 full
011 = Receive FIFO becomes >= 3/4 full
100 = Receive FIFO becomes >= 7/8 full
101:111 = reserved.

所以串口受到了数据但是还没有中断。现在芯片运行正常的。

你也可以用Receive Timeout的中断直接读最后受到的一些字节在串口Data Register里面。

Best Regards,
Stephane

使用特权

评论回复
地板
armnew|  楼主 | 2007-12-27 12:29 | 只看该作者

多谢二位

没有仔细看手册,
多谢楼上二位了

使用特权

评论回复
5
john_light| | 2007-12-27 16:07 | 只看该作者

进来看Stephane的回帖

在警戒中断发生时读一部分数据,超时中断中再读剩下的部分数据。

使用特权

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

本版积分规则

4

主题

6

帖子

1

粉丝