Raspberry Pi-UART-在程序C中禁用发送并启用接收

Raspberry Pi-UART-在程序C中禁用发送并启用接收,c,uart,raspberry-pi4,C,Uart,Raspberry Pi4,我需要通过UART将我的raspberry pi 4型号b与伺服系统连接起来,但只能通过1根导线连接。这意味着我必须将引脚TX和RX连接在一起。为了做到这一点,我必须有一种方法,如何手动禁用我的C程序中只有TX或RX 多亏了termios.h库,我能够轻松地禁用RX,但我没有找到任何方法来禁用TX 我正试图通过这个来禁用它 tcflow(fd_myUART, TCOOFF); // it should suspend output 但这不起作用,所以我想如果我把TX的引脚改为INPUT,它会把

我需要通过UART将我的raspberry pi 4型号b与伺服系统连接起来,但只能通过1根导线连接。这意味着我必须将引脚TX和RX连接在一起。为了做到这一点,我必须有一种方法,如何手动禁用我的C程序中只有TX或RX

多亏了termios.h库,我能够轻松地禁用RX,但我没有找到任何方法来禁用TX

我正试图通过这个来禁用它

tcflow(fd_myUART, TCOOFF); // it should suspend output
但这不起作用,所以我想如果我把TX的引脚改为INPUT,它会把引脚从UART改为GPIO,但这也不起作用

你有办法,怎么做吗?

首先,只是“随机”连接两条电线是个坏主意。 下图显示了如何为原型做得更好。 在TX信号为高电平时,从设备能够在读取位或复位期间将IO线拉低

在此配置中使用时,您不应禁用RX或TX。您可以使用“正常”UART操作


可以找到更多信息(maxim integrated tutorial 214“使用UART实现单线总线主机”)

这可能会起作用,但我有点担心,因为我将在1个raspberry pi上连接30个伺服,波特率必须高达1 000 000或2 000 000 000。我担心这个解决方案中的波特率。