串口的DE、DSR、CTS、RTS 概念解释:
- DE(Driver Enable):RS-485 收发器的发送使能信号,用于控制芯片进入发送(DE=1)或接收(DE=0)模式,是半双工 RS-485 实现收发切换的关键引脚(非 RS-232 标准信号)。
- RTS(Request To Send):原为 RS-232 的硬件流控信号(发送方请求发送),但在 RS-485 系统中常被复用为 DE 控制信号(通过软件或电路将 RTS 高/低电平映射为发送/接收使能)。
- CTS(Clear To Send):RS-232 的硬件流控响应信号(接收方允许发送),在标准 RS-485 中不常用;若使用,通常用于多机通信中的接收许可,但非 RS-485 规范定义。
- DSR(Data Set Ready):RS-232 中表示调制解调器等通信设备已就绪的信号,与 RS-485 无关;RS-485 无 DSR 标准定义,有时被误标或用于供电(非通信功能)。78
485的方向脚 DE/RE可以通过2种接线方式进行控制:
A) UARTx_RTS 串口芯片自动收发,delay_rts_after_send参数可以生效
B) 另一个 GPIO 由CPU控制收发,受限于CPU负载和性能,效率会低一些或很多
在需要发送完马上切到收的场景下,尽量选择A方式,配合以下参数设置,可加快收发效率,实现零延迟切方向
flags=3
delay_rts_after_send=0