C:跨平台的RS-232串口库?
我正在寻找一个开源的跨平台库,用于处理C语言中的串行端口,这就是令人敬畏的PySerial库(不幸的是我必须在这个应用程序中使用C)。
我只发现了这个: http : //www.teuniz.net/RS-232/ ,而且似乎没有提到OS X的兼容性。
您会认为串行端口的跨平台C库已经存在了20年,但截至2013年仍然没有,所以我创建了libserialport 。
它在Windows,Mac OS X,Linux(包括Android),BSD上进行了测试,也可能在其他Unix系统上构建。 它支持:
- 端口枚举(获取系统上的串行端口列表)
- 打开,关闭和查询端口
- 设置端口参数(波特率,奇偶校验等)
- 端口信令操作(调制解调器控制线,中断等)
- 读取,写入和刷新数据
- 等待活动
- 获取错误信息
最初的0.1.0版本由Sigrok项目主动使用,用于支持串行硬件,并且已经打包在几个Linux发行版中。 git版本还包括用于获取有关USB串行适配器(VID / PID等)的信息的新API调用。
我意识到你说C而不是C ++,但也许你可以使用Boost Asio的串口并将其编译成一个与你的C应用程序链接的库。 它声称与POSIX兼容,OS X是POSIX。
这是一个无耻的插件,但我有一个MIT许可的RS-232通信库,可以移植到Windows,Linux和OS X:
我在麻省理工学院许可下发布了我的: https : //github.com/Marzac/rs232
它采用C编程,适用于Windows,Mac和Linux。
获取一些额外的OS X特定的Objective-C代码,沿着AMSerialPort,goSerial,serialconnect,PolKit,……并实现C源文件的条件编译。
OS X支持标准POSIX串行API,来自
和
。 查找函数tcsetattr()
, cfsetspeed()
等。