64.5. UART接收超时

64.5.1. 概述

该示例工程,UART可以使用接收超时机制实现不定长数据接收(数据量小于程序定义的BUFF_SIZE)。 该方法相对于uart_irq,可以减少接收触发的中断次数倍数。比如接收1000个字节,单字节接收需要1000次中断,而该方法只需要77次。而且可以利用FIFO超时判断是否总线空闲,以此来接收不定长数据。 如果硬件支持接收空闲检测,则可使用uart_hardware_rx_idle的例程。 如果想软件支持接收空闲检测,则可使用uart_software_rx_idle的例程

64.5.2. 端口设置

  • 串口波特率设置为115200bps1个停止位无奇偶校验位

64.5.3. 硬件设置

  • 使用usb转ttl模块进行测试,将模块的TX接在开发板待测的RX,模块的RX接在开发板待测的TX,模块的GND接在开发板的GND

  • 请参考具体开发板引脚描述部分的描述。

64.5.4. 运行现象

当工程正确运行后,通过串口输入一些数据,串口对应会发送对应的数据。串口终端会以如下形式输出信息:

UART RX FIFO timeout example
uart rx data size:10 interrupt count is :1
uart rx data size:20 interrupt count is :2
uart rx data size:30 interrupt count is :3
uart rx data size:40 interrupt count is :4
uart rx data size:50 interrupt count is :4
uart rx data size:60 interrupt count is :5
uart rx data size:70 interrupt count is :6
uart rx data size:80 interrupt count is :7
uart rx data size:90 interrupt count is :7
uart rx data size:100 interrupt count is :8
uart rx data size:200 interrupt count is :16
uart rx data size:300 interrupt count is :24
uart rx data size:400 interrupt count is :31
uart rx data size:500 interrupt count is :39
uart rx data size:600 interrupt count is :47
uart rx data size:700 interrupt count is :54
uart rx data size:800 interrupt count is :62
uart rx data size:900 interrupt count is :70
uart rx data size:1000 interrupt count is :77
  • 串口工具现象