我有一个带有多个串行端口的设备,我正在使用嵌入式 linux 进行编程,我想同时通过这两个端口进行异步通信。
我知道如何写入一个串行端口,例如:
bytes_sent = write( fd, &(string[i]), 1 );
但这仅适用于一个串行端口
我应该使用 termios 结构和 c_cflags 来区分端口吗?正如您所看到的,它有点模糊,我只是潜入其中并为此弄湿了我的脚,任何一般性的帮助都可以帮助我模糊地指出正确的方向。
我有一个带有多个串行端口的设备,我正在使用嵌入式 linux 进行编程,我想同时通过这两个端口进行异步通信。
我知道如何写入一个串行端口,例如:
bytes_sent = write( fd, &(string[i]), 1 );
但这仅适用于一个串行端口
我应该使用 termios 结构和 c_cflags 来区分端口吗?正如您所看到的,它有点模糊,我只是潜入其中并为此弄湿了我的脚,任何一般性的帮助都可以帮助我模糊地指出正确的方向。
您是如何获得第一个串行端口的文件描述符的?假设它是这样的:
fd = open("/dev/serialPort0", O_RDWR);
你应该能够做到:
fd2 = open("/dev/serialPort1", O_RDWR);
并获取用于其他串行端口的文件描述符。随心所欲地写信给每个人:
char str1[] = "Hello, port 1!\n";
char str2[] = "hello, port 2!\n";
write(fd, str1, sizeof str1);
write(fd2, str2, sizeof str2);
请参阅相关答案以将端口配置为所需的速度、奇偶校验和 i/o 阻塞特性。
即使硬件有 4 个或 24 个串行端口,正确的处理是单独和独立地对待每个。