如何设置uart超时

4个职位/0个新职位
最后一篇文章
caicx公司
离线
最后一次见到:6年1周前
已加入:2014-07-24 04:25
如何设置uart超时

嗨,对话,
当我想使用uart时,我看了DA14580的数据表,在第54页它说:

中断启用寄存器:ERBFI,用于启用/禁用接收数据可用中断和字符超时中断的生成(如果在FIFO模式和FIFO已启用)

在DSPS示例项目中,有一个处理程序,

静态void uart\u sps\u timeout\u data\u avail\u isr(void),在“uart\u sps.c”中,它似乎用于处理uart数据接收超时。

但是我不知道超时会发生多少次,我是否有机会定义我喜欢的超时值。

另一个问题,在uart接收中断处理程序中,当完成所有数据传输到本地数据缓冲区时,
对于notify应用程序任务,有新数据即将到来。我可以在处理程序内部,构造一个内核消息并将其发送给应用程序任务,
这样地:

my\u define\u data\u struct*cmd=KE\u MSG\u ALLOC(my\u define\u MSG,DESK\u TASK\u ID,NULL,my\u define\u data\u struct);
发送消息(cmd)

谢谢你的帮助,
蔡。

PY\u对话框
离线
最后一次见到:2年7个月前
工作人员
已加入:2014-08-25 09:59
嗨,凯克斯,

嗨,凯克斯,

uart超时将使用一个预定义的uart计时器,您不需要设置它。如果在最后一个接收字节之后没有接收到有效字节,则超时。
如果你想的话,你可以在应用程序上发布消息。

PY公司
对话框

nhtvinh公司
离线
最后一次见到:4年9个月前
已加入:2014-11-18 02:59
嗨,派瑞,

嗨,派瑞,

作为您的回答,我们如何更改代码中的超时间隔?我们的目的是减少从UART接收数据并尽快发送TX消息时的响应时间。
还有一点,在我们的开发过程中,我们看到了以下缺陷:

我们试图通过修改以下代码将RX FIFO中断从半个FIFO更改为1个字符:

设置字16(UART2\u IIR\u FCR\u REG,0x87);

SetWord16(UART2_IIR_FCR_REG,0x07);//接收1个字符时的rcv int
在uart\u sps.c文件的uart\u sps\u init函数中,执行以下测试:
-将UART从DA14580 Basic连接到PC上的UART,并在RX处回送,在DA14580上的UART处回送TX
-我们希望在PC机上从UART输入一个字符时,我们会收到相同的结果,但结果如下:
当尝试插入超过8个字符时,我们只在RX接收到第一个输入。我们只输入一个,在大约20次或更多的测试后收到相同的结果。

这是已知的问题吗?或者UART IP有限制?
在这个问题上我们需要你的帮助。

顺致敬意,
阮永元。

nhtvinh公司
离线
最后一次见到:4年9个月前
已加入:2014-11-18 02:59
嗨,派瑞,

嗨,派瑞,

现在我知道为什么你的释放密码会延迟了。它来自外部睡眠设置。

顺致敬意,
阮永元。