【发布时间】:2019-08-29 08:17:45
【问题描述】:
目前,我正在测试 2 个 RS485 UART 端口之间的流控(只需连接 Rx 和 RX,Tx 和 Tx,不连接 DTS/CTS)。
标志设置(在get和set属性之间)
- 硬件流控制:
tty.c_cflag |= CRTSCTS; // RTS/CTS tty.c_iflag &= ~(IXOFF|IXON|IXANY);
- SW 流控制:
tty.c_cflag &= ~CRTSCTS; tty.c_iflag |= (IXOFF|IXON|IXANY);
我假设如果我将 UART1 和 UART2 都设置为硬件流控制并且波特率很高(例如 460800 bps)或以较高的波特率写入 UART1,则从 UART2 以较低的波特率读取(), FIFO(目前是64byte)会溢出,和内核发送一些通知一样。
但实际上,总是 write() 和 read() 成功。谁能分享我如何观察缓冲区溢出的建议?
对不起,如果我的问题有点垃圾,因为我是一个新的 linux 精益者。
非常感谢。
【问题讨论】:
标签: linux serial-port flow-control