我想在c ++中从/向串口读/写数据,但我希望我的代码尽可能便携。我目前正在开发一个窗口环境并且只使用std函数(windows.h从未#include'ed)。 是否有任何便携式,正确(即不是#ifdef,而不是提升)的方式来连接串口?
假设上面的答案是否定的,是否有任何可以执行此(基本)任务的可用程序包?
由于
答案 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
类,例如。