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提供了QSerialPort
class,例如
我想 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提供了QSerialPort
class,例如