我正试图通过RS-485半双工串行线与设备通信。当我向设备发送命令时,它会处理该命令并在处理后立即回复。问题是,我必须在发送命令后立即将我的RS-485芯片转入接收模式,以便接收设备的回复。但由于UART的写入功能是非阻塞IO操作,我无法知道何时将RS-485芯片转入接收模式。
如何在UART中执行阻塞写入操作,除非所有字节都通过串行线发送,否则该功能不会退出?
您的硬件平台是什么?我之前已经解决了这个问题(atmel AT91SAM9260),通过配置硬件来自动设置RTS信号。这是你最好的选择,除非你修改内核中的串行驱动程序(有时甚至不能这样做——你可以做到)