嗨对话框,
当我想使用UART时,我观看DA14580的数据表,请参见第54页,它说:
“中断使能寄存器:erbfi,这用于启用/禁用所接收的数据可用中断的生成和字符超时中断(如果在FIFO模式和FIFO的启用中)。”
在查看DSPS样本项目内部后,有一个处理程序,
静态void UART_SPS_TIMEOUT_DATA_AVAIL_ISR(void),在“UART_SPS.C”中,似乎用于处理UART数据接收超时。
但我不知道超时会发生多少时间,我有机会定义我的有限超时值。
另一个问题,在UART接收中断处理程序中,完成所有数据传输到本地数据缓冲区时,
要通知应用程序任务,还有新数据。我可以在处理程序中,构建内核消息并将其发送到应用程序任务,
像这样:
my_define_data_struct * cmd = ke_msg_alloc(my_define_msg,desk_task_id,null,my_define_data_struct);
KE_MSG_SEND(CMD)
感谢帮助,
蔡。

嗨Caicx,
UART超时将使用UART的预定义计时器,您不需要设置它。如果您在最后收到字节后没有收到有效的字节,则会超时。
如果您愿意,您可以将消息发布到应用程序。
PY
对话
嗨py,
作为您的回复,我们如何在代码中更改超时间隔?我们的目的正在减少从UART接收数据的响应时间,并尽快发送TX消息。
在我们的发展过程中,我们还有一件事,我们看到了以下缺陷:
通过修改此代码,我们尝试将RX FIFO中断从半个FIFO到1个字符更改为1个字符:
从
setword16(UART2_IIR_FCR_REG,0x87);
至
setword16(UART2_IIR_FCR_REG,0x07);// rcv int当1字符rx时
在UART_SPS_INIT函数上在UART_SPS.C文件上进行函数,并如下所示进行测试:
- 将UART从DA14580 Basic使用UART在PC上,并在DA14580上的UART循环返回RX
- 我们期待在从PC的UART输入一个角色时,我们将收到相同但结果如下:
当尝试插入超过8个字符时,我们只收到了Rx的第一个输入。我们只输入一个并在大约20次或更多时间后输入一个并收到相同的测试。
是已知问题吗?或者与UART IP有限?
我们需要您帮助解决这个问题。
最好的祝福,
Vinh Nguyen。
嗨py,
现在我知道为什么你的释放代码有延迟。它来自ext_sleep设置。
最好的祝福,
Vinh Nguyen。