【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

相关推荐
zh_xuan1 小时前
使用命令行把安装包上传到github
c++·git·libcurl·c++工程打包
爱编码的小八嘎2 小时前
C语言完美演绎9-13
c语言
爱编码的小八嘎2 小时前
C语言完美演绎9-19
c语言
shada2 小时前
mini-dog-c编译器开发 - 04 递归下降解析器
c语言·编译器
FeelTouch Labs2 小时前
开源安全治理体系建设
安全·开源
无限进步_3 小时前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio
鱼跃厂长3 小时前
这份skill,能将你的简历提升到字节的水平!
c++·ai·ai编程
天若有情6733 小时前
逆向玩家狂喜!用C++野生写法一键破解线性加密(不规范但巨好用)
开发语言·c++·算法