This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于tm4c123串口接收超时中断

我在uart_echo的例程中看到这样一句:
ROM_UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT);
请问这个串口超时中断时什么意思,是像stm32里的串口空闲中断一样吗?
如果不是请问tm4c有类似的功能(判断接收完连续的一帧数据)吗?
  • Read方法是阻塞的,它一直在读串口接收缓冲区中的数据,如果接收缓冲区有数据,Read方法则返回一个或多个字节数据;如果Read方法在等待ReadTimeout毫秒时间内,串口接收区一直没有任何数据,则Read方法将甩ExceptionTimeout异常。注意,Read(outBuf, offset, count)阻塞读取的不是非等到count个字节数据,而是当前接收缓冲区大于等于1小于等于count个字节数据,即只要有数据Read方法就立刻返回。
    ----------
    我觉得上面的讲解的很透彻。我的理解是,真实情况下,串口发送数据是连续的,当一定时间内,接收不到剩余发送的数据,就判断超时,返回超时中断。
  • 谢谢回复,我试了一下发现如果给串口发一帧数据但是没有在串口中断处理函数调用读函数就会触发超时中断,具体的我还没了解,我还是定义自己的数据帧来完成我的需求吧