27

我正在寻找一个开源跨平台库,用于在 C 中处理串行端口,类似于很棒的PySerial库(不幸的是,我必须为这个应用程序使用 C)。

我只找到了这个:http ://www.teuniz.net/RS-232/ ,而且似乎没有提到 OS X 兼容性。

4

6 回答 6

40

您可能会认为用于串行端口的跨平台 C 库已经存在了 20 年,但到 2013 年仍然没有,所以我创建了libserialport

它在 Windows、Mac OS X、Linux(包括 Android)、BSD 上进行了测试,并且可能还会在其他 Unix 系统上构建。它支持:

  • 端口枚举(获取系统上的串口列表)
  • 打开、关闭和查询端口
  • 设置端口参数(波特率、奇偶校验等)
  • 端口信令操作(调制解调器控制线、中断等)
  • 读取、写入和刷新数据
  • 等待事件
  • 获取错误信息

Sigrok项目正在积极使用最初的 0.1.0 版本来支持串行硬件,并且已经打包在多个 Linux 发行版中。git 版本还包括用于获取有关 USB 串行适配器(VID/PID 等)信息的新 API 调用。

于 2014-07-11T12:47:53.480 回答
8

这是一个无耻的插件,但我有一个用于 RS-232 通信的 MIT 许可库,可移植到 Windows、Linux 和 OS X:

http://wjwwood.io/serial/

于 2013-08-25T22:41:53.770 回答
7

我意识到您说的是 C 而不是 C++,但也许您可以使用Boost Asio 的串行端口并将其编译成一个库以与您的 C 应用程序链接。它声称与 POSIX 兼容,而 OS X 是 POSIX。

于 2010-06-04T10:56:19.010 回答
6

我在 MIT 许可下发布了我的:https ://github.com/Marzac/rs232

它是用 C 语言编写的,适用于 Windows、Mac 和 Linux。

于 2015-08-16T12:57:16.853 回答
4

OS X 支持标准 POSIX 串行 API,从<termios.h><unistd.h>. 查找功能tcsetattr()cfsetspeed()等等。

于 2010-06-05T07:30:16.190 回答
3

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

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

于 2010-06-04T13:04:34.843 回答