【C/C++】轻量级跨平台 开源串口库 CSerialPort

文章目录

1、简介

Qt 的QSerialPort 已经是跨平台的解决方案,但Qt开发后端需要 Qt 的依赖库。为了使 C/C++ 开发的前后端不依赖 Ros、Qt 等工具,找到了一款还不错的开源库CSerialPort。它是一个基于C/C++的轻量级开源跨平台串口类库,可以轻松实现跨平台多操作系统的串口读写,同时还支持C#, Java, Python, Node.js等。

当前版本:4.3.0.230215 on 2023-02-15

官网地址:https://github.com/itas109/CSerialPort

2、支持的平台

  • Windows ( x86, x86_64, arm64 )
  • Linux ( x86, x86_64, arm, arm64/aarch64, mips64el, riscv, s390x, ppc64le )
  • macOS ( x86_64 )
  • Raspberry Pi ( armv7l )
  • FreeBSD ( x86_64 )
  • ...

3、已经支持的功能

1.首先支持windows和linux平台

2.增加通用串口通信协议

3.支持热插拔 - CSerialPortExtend

4.更高效的通知模块 - CSerialPortListener

5.支持其他语言 - C#, Python, Java, Node.js - 详见bindings

6.同步串口通信

7.全新的跨平台串口调试助手 - CommMaster通信大师

8.增加CSerialPort的介绍和使用教程 - CSerialPort教程

9.跨平台操作系统识别库

10.跨平台多线程类库

11.跨平台锁类库

12.跨平台高效定时器类库

4、Linux下使用

$ git clone --depth=1 https://github.com/itas109/CSerialPort.git

$ cd CSerialPort

$ mkdir bin && cd bin

$ cmake ...

$ cmake --build .

运行示例程序(如linux下串口环回测试)

CSerialPort/bin $ ./bin/CSerialPortDemoNoGui

Version: https://github.com/itas109/CSerialPort - V4.3.0.230215

availableFriendlyPorts:

1 - /dev/ttyS0

Please Input The Index Of Port(1 - 2)

1

Port Name: /dev/ttyS0

Open /dev/ttyS0 Success

Count: 1, Length: 29, Str: https://blog.csdn.net/itas109, Hex: 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F 0x62 0x6C 0x6F 0x67 0x2E 0x63 0x73 0x64 0x6E 0x2E 0x6E 0x65 0x74 0x2F 0x69 0x74 0x61 0x73 0x31 0x30 0x39

5、使用vcpkg安装CSerialPort

您可以通过vcpkg依赖包管理工具下载和安装CSerialPort

$ git clone https://github.com/Microsoft/vcpkg.git

$ cd vcpkg

$ ./bootstrap-vcpkg.sh

$ ./vcpkg install cserialport

6、交叉编译

  • arm on ubuntu 20.04

$ sudo apt-get install g+±arm-linux-gnueabi

$ cd CSerialPort

$ mkdir bin_arm && cd bin_arm

$ cmake ... -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_arm.cmake

$ cmake --build .

  • aarch64 on ubuntu 20.04

$ sudo apt-get install g+±aarch64-linux-gnu

$ cd CSerialPort

$ mkdir bin_aarch64 && cd bin_aarch64

$ cmake ... -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_aarch64.cmake

$ cmake --build .

  • mips64el on ubuntu 20.04

$ sudo apt-get install g+±mips64el-linux-gnuabi64

$ cd CSerialPort

$ mkdir bin_mips64el && cd bin_mips64el

$ cmake ... -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_mips64el.cmake

$ cmake --build .

  • riscv64 on ubuntu 20.04

$ sudo apt-get install g+±riscv64-linux-gnu

$ cd CSerialPort

$ mkdir bin_riscv64 && cd bin_riscv64

$ cmake ... -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchain_riscv64.cmake

$ cmake --build .

7、效果图

示例路径: CSerialPort/examples/CommQT

Tui 终端用户界面

示例路径: CSerialPort/examples/CommTui

No Gui 无界面

示例路径: CSerialPort/examples/CommNoGui

8、基于CSerialPort的应用

8.1、CommMaster通信大师

安装包路径:https://gitee.com/itas109/CommMaster

8.2、CommLite串口调试器

安装包路径:https://github.com/itas109/CommLite

相关推荐
冬奇Lab16 小时前
每日一个开源项目(第135篇):codebase-memory-mcp - 给 AI Agent 一张代码库的知识图谱
人工智能·开源·llm
uniquejing1 天前
《每次 API 调用前扔掉 43% Token,我开源了一个 AI 提示词瘦身工具》
开源
clint4562 天前
C++进阶(1)——前景提要
c++
文心快码BaiduComate2 天前
Comate 搭载GLM-5.2:百万上下文,稳定支撑长程任务
前端·程序员·开源
夜悊2 天前
C++代码示例:进制数简单生成工具
c++
郝学胜_神的一滴2 天前
CMake 021: IF 条件判据详诠
c++·cmake
冬奇Lab3 天前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯
_wyt0013 天前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
LDR0063 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
Luminous.3 天前
C语言--day30
c语言·开发语言