在Linux中阻止UART串行端口上的I / O写操作

时间:2012-12-08 16:07:34

标签: linux io serial-port uart

我正尝试通过RS-485半双工串行线与设备通信。当我向设备发送命令时,它会处理命令并在处理后立即回复。问题是我必须在发送命令后立即将RS-485芯片转换为接收模式,以便接收设备的回复。但由于我的UART写功能是一个非阻塞IO操作,我无法知道何时将我的RS-485芯片转换为接收模式。

如何对UART执行阻塞写入操作,除非所有字节都是通过串行线路实际发送的,否则函数不会退出?

1 个答案:

答案 0 :(得分:0)

您的硬件平台是什么?我之前(atmel AT91SAM9260)通过配置硬件来自动设置RTS信号解决了这个问题。这是你最好的选择,除非你修改内核中的串行驱动程序(有时甚至不能这样做)