c++标准库串口(UART)接口

C++ standard library Serial port (UART) interface

本文关键字:UART 接口 串口 标准 c++      更新时间:2023-10-16

我想在c++中从/到串行端口读取/写入数据,但我想让我的代码尽可能可移植。我目前在一个窗口环境中工作,只使用std函数(windows.h从来没有#include'ed)。是否有任何可移植的,正确的(即不是#ifdef,不是boost)方式来连接串行端口?

假设上面的答案是否定的,是否有任何便携的包可以执行这个(基本)任务?

谢谢

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

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

作为一个可移植库,Qt提供了QSerialPort类,例如