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

时间:2015-10-20 06:18:25

标签: c++ std

我想在c ++中从/向串口读/写数据,但我希望我的代码尽可能便携。我目前正在开发一个窗口环境并且只使用std函数(windows.h从未#include'ed)。 是否有任何便携式,正确(即不是#ifdef,而不是提升)的方式来连接串口?

假设上面的答案是否定的,是否有任何可以执行此(基本)任务的可用程序包?

由于

1 个答案:

答案 0 :(得分:8)

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

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

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