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:

http://wjwwood.io/serial/

我在麻省理工学院许可下发布了我的: https : //github.com/Marzac/rs232

它采用C编程,适用于Windows,Mac和Linux。

获取一些额外的OS X特定的Objective-C代码,沿着AMSerialPort,goSerial,serialconnect,PolKit,……并实现C源文件的条件编译。

http://osx.hyperjeff.net/Apps/apps?f=serial

OS X支持标准POSIX串行API,来自 。 查找函数tcsetattr()cfsetspeed()等。