我希望从c++中的串行端口读取/写入数据,但我希望代码尽可能可移植。我目前正在处理一个窗口环境,并且只使用std函数(windows.h从不#include‘’ed)。是否有任何可移植的、正确的(即不是#ifdef,而不是boost)方式来连接串口?
假设上面的答案是否定的,是否有任何可移植的包可以预先形成这个(基本)任务?
谢谢
发布于 2015-10-20 06:29:41
标准C(++)库不为您的串口提供专用接口。但是,您可以使用通用I/O (如<iostream>),因为您的操作系统支持基于文件的端口访问。Unix/Linux的情况是通过/dev/tty...中的常用文件,通过保留的COM1设备名等等。
要设置和获取端口的参数(波特率等),仍然需要使用特定于平台的API。这可能是Windows (https://msdn.microsoft.com/en-us/library/ff802693.aspx),也可能是Linux的termios (注意,Linux下有多个接口;termios在POSIX中是标准化的)。
例如,作为一个可移植库,Qt提供了QSerialPort类。
https://stackoverflow.com/questions/33229337
复制相似问题