【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

相关推荐
qq_29654465几秒前
最新B站短视频、长视频外,动漫、各类线上课程,付费课程下载
c++
m0_736919102 分钟前
C++中的类型标签分发
开发语言·c++·算法
卡里笔记2 分钟前
C语言版2048小游戏
c语言
2301_790300969 分钟前
C++与微服务架构
开发语言·c++·算法
一切尽在,你来13 分钟前
C++多线程教程-1.1.4 并发编程的风险(竞态条件、死锁、数据竞争、资源争用)
开发语言·c++
梵刹古音18 分钟前
【C语言】 循环结构
c语言·开发语言·算法
消失的旧时光-194320 分钟前
C++ 函数参数传递方式总结:什么时候用值传递、引用、const 引用?
开发语言·c++
一匹电信狗22 分钟前
【C++】CPU的局部性原理
开发语言·c++·系统架构·学习笔记·c++11·智能指针·新特性
皮皮哎哟25 分钟前
冒泡排序与数组传递全解析 一维二维指针数组及二级指针应用指南
c语言·算法·冒泡排序·二维数组·指针数组·传参·二级指针
m0_5613596726 分钟前
C++代码冗余消除
开发语言·c++·算法