【C/C++】轻量级跨平台 开源串口库 CSerialPort
文章目录
- 1、简介
- 2、支持的平台
- 3、已经支持的功能
- 4、Linux下使用
- 5、使用vcpkg安装CSerialPort
- 6、交叉编译
- 7、效果图
- 8、基于CSerialPort的应用
- 8.1、CommMaster通信大师
- 8.2、CommLite串口调试器
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
相关文章:
【C/C++】轻量级跨平台 开源串口库 CSerialPort
文章目录 1、简介2、支持的平台3、已经支持的功能4、Linux下使用5、使用vcpkg安装CSerialPort6、交叉编译7、效果图8、基于CSerialPort的应用8.1、CommMaster通信大师8.2、CommLite串口调试器 1、简介 Qt 的QSerialPort 已经是跨平台的解决方案,但Qt开发后端需要 Q…...
大创项目推荐 深度学习图像修复算法 - opencv python 机器视觉
文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步:将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…...
嵌入式系统复习--基于ARM的嵌入式程序设计
文章目录 上一篇编译环境ADS编译环境下的伪操作GNU编译环境下的伪操作ARM汇编语言的伪指令 汇编语言程序设计相关运算操作符汇编语言格式汇编语言程序重点C语言的一些技巧 下一篇 上一篇 嵌入式系统复习–Thumb指令集 编译环境 ADS/SDT IDE开发环境:它由ARM公司开…...
【C++入门到精通】异常 | 异常的使用 | 自定义异常体系 [ C++入门 ]
阅读导航 引言一、C异常的概念二、异常的使用1. 异常的抛出和捕获(1)throw(2)try-catch(3)catch(. . .)(4)异常的抛出和匹配原则(5)在函数调用链中异常栈展开…...
NX二次开发 Block UI 指定方位控件的应用
一、概述 NX二次开发中一般都是多个控件的组合,这里我首先对指定方位控件进行说明并结合选择对象控件,具体如下图所示。 二、实现功能获取方位其在选择面上原点的目标 2.1 在initialize_cb()函数中进行初始化,实现对象选择过滤面 //过滤平…...
2024年【R2移动式压力容器充装】模拟考试及R2移动式压力容器充装实操考试视频
题库来源:安全生产模拟考试一点通公众号小程序 2024年【R2移动式压力容器充装】模拟考试及R2移动式压力容器充装实操考试视频,包含R2移动式压力容器充装模拟考试答案和解析及R2移动式压力容器充装实操考试视频练习。安全生产模拟考试一点通结合国家R2移…...
数仓工具—Hive进阶之StorageHandler(23)
Storage Handler 引入Storage Handler,Hive用户使用SQL的方式读写外部数据源, 例如ElasticSearch、 Kafka、HBase等数据源的查询对非专业开发是有一定门槛的,借助Storage Handler,他们有了一种方便快捷的手段查询数据,Storage Handler作为Hive的存储插件,我们需要的时候直…...
科技创新创业
科技创新创业是一个涉及多个方面的过程,主要包括以下几个方面: 创意产生:创业的起始点通常是一个新的创意或想法,这可能是一个新的产品、服务或技术的概念。这个创意需要独特且具有商业潜力。市场调研:一旦有了创意&a…...
高校电力能耗监测精细化管理系统,提升能源利用效率的利器
电力是高校不可离开的重要能源,为学校相关管理人员提供在线用能查询统计等服务。通过对学校照明用电、空调用电等数据的采集、监控、分析,为学校电能管理制定合理的能源政策提供参考。同时,也可以培养学生的节能意识,学校后勤电力…...
Java_Swing程序设计
swing组件允许编程人员在跨平台时指定统一的外观和风格。 Swing组件通常被称为轻量级组件, JFrame在程序中的语法格式: JFrame jfnew JFrame(title); Container containerjf.getContentPane(); jf:JFrame类的对象 container:Container类的对象。 J…...
ZeroBind:DTI零样本预测器
现有的药物-靶点相互作用(DTI)预测方法通常无法很好地推广到新的(unseen)蛋白质和药物。 在这项研究中,作者提出了一种具有子图匹配功能的蛋白质特异性元学习框架 ZeroBind,用于根据其结构预测蛋白质-药物相…...
Win10子系统Ubuntu实战(一)
在 Windows 10 中安装 Ubuntu 子系统(Windows Subsystem for Linux,简称 WSL)有几个主要的用途和好处:Linux 环境的支持、跨平台开发、命令行工具、测试和验证、教育用途。总体而言,WSL 提供了一种将 Windows 和 Linux…...
[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-2(3) 质量刚体的在坐标系下运动
本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…...
云计算历年题整理
目录 第一大题 第一大题HA计算 给出计算连接到EC2节点的EBS的高可用性(HA)的数学公式,如场景中所述;计算EC2节点上的EBS的高可用性(HA);场景中80%的AWS EC2节点用于并行处理,总共有100个虚拟中央处理单元(vCPUs)用于处理数据&a…...
2401vim,vim重要修改更新大全
原文 2023 更好的UTF-16支持 添加strutf16len()和utf16idx(),并在byteidx(),byteidxcomp()和charidx()中添加utf16标志,在内置.txt文档中. 添加crypymethod xchacha20v2 与xchacha20基本相同,但更能抵御libsodium的变化. 2022 添加"smoothscroll" 用鼠标滚动…...
安卓多用户管理之Userinfo
目录 前言Userinfo----用户信息1.1 属性1.2 构造器1.3 信息的判断及获取方法1.3.1 获取默认用户类型1.3.2 基础信息判断 1.4 序列化部分 总结 前言 UserManagerService内部类UserData中有一个Userinfo类型的info参数,在UserData中并未有所体现,但在后续…...
JavaScript-流程控制-笔记
1.流程语句的分类 顺序结构 分支结构 循环结构 2.if语句 1)if结构 if( 条件 ){ // 条件成立执行的代码 } 2)if else 结构 if( 条件 ){ // 条件成立执行的代码 }else{ // 条件不成…...
springboot + vue3实现增删改查分页操作
springboot vue3实现增删改查分页操作 环境最终实现效果实现功能主要框架代码实现数据库后端前端 注意事项 环境 jdk17 vue3 最终实现效果 实现功能 添加用户,禁用,启用,删除,编辑,分页查询 主要框架 后端 spri…...
leetcode01-重复的子字符串
题目链接:459. 重复的子字符串 - 力扣(LeetCode) 一般思路: 如果存在k是S的字串,记k的长度为s,S的长度为n,则一定有n是s的倍数,且满足对于j∈[s,n],一定存在s[j]s[j-s]; …...
目标检测数据集 - 夜间行人检测数据集下载「包含VOC、COCO、YOLO三种格式」
数据集介绍:夜间、低光行人检测数据集,真实场景高质量图片数据,涉及场景丰富,比如夜间街景行人、夜间道路行人、夜间遮挡行人、夜间严重遮挡行人数据;适用实际项目应用:公共场所监控场景下夜间行人检测项目…...
Audacity音频编辑引擎深度解析:模块化架构设计与高性能音频处理技术
Audacity音频编辑引擎深度解析:模块化架构设计与高性能音频处理技术 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity Audacity作为一款开源跨平台专业音频编辑软件,其最新版本在架构设计和性…...
别再傻傻分不清了!MOC3081、3061、3041、3021这几款可控硅光耦到底怎么选?
MOC30xx系列可控硅光耦深度选型指南:从参数解析到实战避坑 在电力电子设计领域,可控硅光耦就像电路中的"安全卫士",既要确保强弱电之间的可靠隔离,又要精准触发功率器件。MOC30xx系列作为经典的可控硅驱动光耦ÿ…...
SAP物料账核心:手把手配置OBYC中的GBB与PRD科目(含OMSK评估类关联详解)
SAP物料账核心:手把手配置OBYC中的GBB与PRD科目(含OMSK评估类关联详解) 在SAP系统中,物料账管理是连接物流与财务的关键桥梁。对于财务人员而言,理解物料移动如何触发财务过账,以及如何通过后台配置实现精准…...
WaveTools鸣潮工具箱实战指南:从画质优化到抽卡策略的新视角
WaveTools鸣潮工具箱实战指南:从画质优化到抽卡策略的新视角 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 当我在宿舍用老旧笔记本玩《鸣潮》时,画面卡顿得连技能都放不连贯&…...
Stable Yogi Leather-Dress-Collection 皮革设计效果惊艳展示:多风格高清作品集
Stable Yogi Leather-Dress-Collection 皮革设计效果惊艳展示:多风格高清作品集 最近在AI设计圈里,有个模型挺火的,叫Stable Yogi Leather-Dress-Collection。光听名字你可能就猜到了,它专门用来生成皮革连衣裙的设计图。我花了一…...
Alt App Installer革新:突破微软商店限制的Windows应用安装解决方案
Alt App Installer革新:突破微软商店限制的Windows应用安装解决方案 【免费下载链接】alt-app-installer A Program To Download And Install Microsoft Store Apps Without Store 项目地址: https://gitcode.com/gh_mirrors/alt/alt-app-installer 微软商店…...
BilibiliDown:三分钟掌握跨平台B站视频批量下载终极方案
BilibiliDown:三分钟掌握跨平台B站视频批量下载终极方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors…...
基于Koopman算子的四旋翼无人机MPC控制开发:一种创新的数据驱动方法
318-一种基于Koopman算子的模型预测控制MPC控制四旋翼无人机开发 简介: 一种基于Koopman算子和扩展动态模式分解(EDMD)的四旋翼无人机学习和控制的新型数据驱动方法。 基于欧拉角(表示方向)等传统方法构建EDMD的观测器已知涉及奇异性。 为了解决这个问题,…...
Qwen3-ASR-0.6B实战:一键部署,轻松实现多语言语音转文字
Qwen3-ASR-0.6B实战:一键部署,轻松实现多语言语音转文字 最近在语音识别领域,阿里云通义千问团队推出的Qwen3-ASR-0.6B模型引起了我的注意。这个模型最大的亮点就是支持52种语言和方言,而且只有0.6B参数,在精度和效率…...
InnoDB 事务 undo log 与 MVCC 可视化讲解(画流程图+伪代码)
InnoDB 事务 undo log 与 MVCC 可视化讲解(画流程图+伪代码) 前言 在MySQL的InnoDB存储引擎中,事务的四大特性(ACID)是其核心能力之一。其中,隔离性(Isolation)和一致性(Consistency)的实现离不开undo log与MVCC(多版本并发控制)的精妙设计。 本文将从底层原理出…...
