C++ 标准库串行端口 (UART) 接口

C++ standard library Serial port (UART) interface

我想 read/write 数据 from/to c++ 中的串行端口,但我希望我的代码尽可能可移植。我目前正在 window 环境中工作并且仅使用标准函数(windows.h 从未被#include'ed)。 是否有任何便携的、正确的(即不是#ifdef,不是 boost)连接串口的方式?

假设以上问题的答案是否定的,是否有可以执行此(基本)任务的任何可盈利软件包?

谢谢

标准 C(++) 库不提供串行端口的专用接口。但是您 可以 使用通用的 I/O(例如 <iostream>),前提是您的操作系统支持对端口的基于文件的访问。这是 Unix/Linux 通过 /dev/tty... 中的常用文件和 Windows 通过保留的 COM1 设备名称等

的情况

要设置和获取端口的参数(波特率等),您仍然需要使用特定于平台的 API。对于 Windows (https://msdn.microsoft.com/en-us/library/ff802693.aspx) 这可能是 Winapi,对于 Linux 可能是 termios (注意 Linux 下有多个接口; termios 在 POSIX) 中标准化。

作为一个可移植的库,Qt提供了QSerialPortclass,例如