CSerialPort教程4.3.x (1) - CSerialPort项目简介
创建时间:2023-08-20 修改时间:2025-06-29
前言
CSerialPort是一个基于C++的轻量级开源跨平台串口类库,可以轻松实现跨平台多操作系统的串口读写,同时还支持C, C#, Java, Python, Node.js, Electron, Rust等。
CSerialPort项目的开源协议自 v4.3.2.250203 版本后采用LGPLv3 with LGPL-3.0-linking-exception
为了让开发者更好的使用CSerialPort进行开发,特编写基于4.3.x版本的CSerialPort教程系列。
CSerialPort项目地址:
https://github.com/itas109/CSerialPorthttps://gitee.com/itas109/CSerialPort
1. CSerialPort设计原则
跨平台简单易用高效
2. CSerialPort平台支持
CSerialPort已经在以下平台做过测试:
Windows ( x86, x86_64, arm64 )Linux ( x86, x86_64, arm, arm64/aarch64, mips64el, riscv, s390x, ppc64le )macOS ( x86_64, apple silicon )Android ( armeabi-v7a, arm64-v8a, x86, x86_64 )FreeBSD ( x86_64 )…
3. CSerialPort快速开始
3.1 获取源码
$ git clone https://github.com/itas109/CSerialPort
国内开发者建议使用https://gitee.com/itas109/CSerialPort
3.2 编译源代码
$ git clone https://github.com/itas109/CSerialPort
$ cd CSerialPort
$ mkdir bin && cd bin
$ cmake ..
$ cmake --build .
3.3 运行测试程序
上一步编译过程中默认编译了串口控制台测试程序CommNoGui
在输出目录bin中找到CSerialPortDemoNoGui运行(如linux下串口环回测试)
CSerialPort/bin $ ./CSerialPortDemoNoGui
[INFO] CSerialPort - OS: Linux, ProductName: Ubuntu 22.04.2 LTS, Arch: x86_64, ProcessorNum: 4, Compiler: gcc(11.4.0), Bit: 64, C++: 201703L, Bindings: , Version: https://github.com/itas109/CSerialPort - v4.3.2.250203
Version: https://github.com/itas109/CSerialPort - v4.3.2.250203
AvailableFriendlyPorts:
1 - /dev/ttyCH341USB0 QinHeng CH340 serial converter 1a86:7523
2 - /dev/pts/0 0 pty terminal
Please Input The Index Of Port(1 - 2)
1
Port Name: /dev/ttyCH341USB0
[INFO] openPort - portName: /dev/ttyCH341USB0, baudRate: 9600, dataBit: 8, parity: 0, stopBit: 0, flowControl: 0, mode: async, readBufferSize:4096(4096), readIntervalTimeoutMS: 0, minByteReadNotify: 1, byteReadBufferFullNotify: 3276
[INFO] openPort - open /dev/ttyCH341USB0. code: 0, message: success
Open /dev/ttyCH341USB0 Success
Code: 0, Message: success
[INFO] writeData - write. len: 5, hex(top100): 3132333435
[INFO] writeData - write. len: 7, hex(top100): 69746173313039
[INFO] commThreadMonitor - write buffer(usedLen 12). len: 12, hex(top100): 313233343569746173313039
[INFO] commThreadMonitor - onReadEvent min read byte. portName: /dev/ttyCH341USB0, readLen: 12
[INFO] readData - read. len: 12, hex(top100): 313233343569746173313039
/dev/ttyCH341USB0 - Count: 1, Length: 12, Str: 12345itas109, Hex: 0x31 0x32 0x33 0x34 0x35 0x69 0x74 0x61 0x73 0x31 0x30 0x39
3.4 其他示例代码
在examples 目录中还提供了MFC、控制台无界面、通用通信协议解析、QT、Electron、Web、Webview、Android、文本界面及wxwidgets的示例程序
├── examples # example 示例程序
├── CommAndroid # CSerialPort Android Demo Android程序示例
├── CommElectron # CSerialPort Electron Demo Electron程序示例
├── CommMFC # CSerialPort MFC Demo MFC程序示例
├── CommNoGui # CSerialPort No Gui Demo 无界面程序示例
├── CommNoGuiProtocol # CSerialPort common communication protocol parser Demo 通用通信协议解析示例
├── CommQT # CSerialPort QT Demo QT程序示例
├── CommTui # CSerialPort tui Demo 文本界面程序示例
├── CommWeb # CSerialPort Web Demo Web程序示例
├── CommWebview # CSerialPort Webview Demo Webview程序示例
├── CommWXWidgets # CSerialPort wxwidgets Demo wxwidgets界面程序示例
4. 基于CSerialPort的应用
4.1 CommMaster通信大师
支持windows/linux/macos/raspberrypi等等支持自定义串口名称支持自定义波特率支持自定义语言支持自定义主题
https://gitee.com/itas109/CommMaster
4.2 CommLite
CommLite是一款基于CSerialPort的文本UI串口调试助手
支持x86, arm, mips等cpu架构支持windows dos, linux, macos, raspberrypi, freebsd等操作系统
https://github.com/itas109/CommLite
License
License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎
Reference:
https://github.com/itas109/CSerialPort