Embedded

如何讀出未使用的串列引腳(RTS、CTS 等)?

  • March 28, 2019

我有一個用於 RS-232 通信的介面。我需要這個介面來進行簡單的通信(沒有奇偶校驗位或流控制 → TX、RX 和接地),但現在我有相當多的 4 個引腳未使用(RTS、DTR、DCD/DSR、CTS)並且想知道我是否可以濫用這些引腳其他信號,為此我需要一種讀出這些引腳的方法。那麼如何在基於 Linux 的嵌入式系統上做到這一點呢?

seterial報告介面處於16550AUART 模式並根據https://en.wikipedia.org/wiki/16550_UART“用於控制外部調製解調器的握手線,可通過軟體控制。”

你還有什麼需要知道的嗎?

RTS 和 DTR 是輸出引腳 - 您可以設置。

DCD 和 CTS 是輸入引腳,只能讀取。

該設備可能預設設置為硬體握手。您可以使用tcsetattr(請參閱 CRTSCTS)更改此設置。然後你可以使用TIOCMBISioctl 來設置 RTS 和 DTR

好的參考是:

以上可能是以 Linux 為中心的。

要更多 POSIX,請參閱POSIX 作業系統的串列程式指南

我從指南中提取了這個例子:

#include <unistd.h>
#include <termios.h>

int fd;
int status;

ioctl(fd, TIOCMGET, &status);

status &= ~TIOCM_DTR;

ioctl(fd, TIOCMSET, status);

Stack Overflow 上,您可以找到一些關於如何正確設置埠的意見。

引用自:https://unix.stackexchange.com/questions/256963