Serial port
Posted 梦起白沙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Serial port相关的知识,希望对你有一定的参考价值。
前言
使用qt开发一款简易串口助手。
目标:
1. 实现正常串口通信。
2. 能够传输AT指令。(需要注意回车符)
github仓库地址:shadow-wd/Serial-port-assistant: 简易串口助手 (github.com)
还在持续更新.......
开发环境
windows平台:qtcreator 5.9.5
代码
代码量小,注释写在代码中。
QcomboBox
对于下拉选项框来说,有一些选项框需要显示给用户汉字(字符串),但是代码中获取用户选项的时候,不能去匹配汉字。
使用QMap将string和int类型绑定,显示给用户string类型,匹配时通过int类型匹配。
QMap<QString,int> parityvalue;
parityvalue.insert("NoParity",1);
parityvalue.insert("EvenParity",2);
parityvalue.insert("OddParity",3);
parityvalue.insert("SpaceParity",4);
parityvalue.insert("MarkParity",5);
// 不知道为什么这里插入的顺序很混乱
foreach (const QString &str, parityvalue.keys())
ui->checkbit->addItem(str,parityvalue.value(str));
AT指令回车
在开发过程中,接收数据很容易,但是发送AT指令总是失败,经过排查问题发现时AT指令的回车符没能成功识别。
// 对发送数据追加回车
if(ui->enter->isChecked())
bytes.append("\\r\\n");
a= serialPort->write(bytes.data());
因此添加了给数据追加回车的选项框。
以上是关于Serial port的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 boost::asio::serial_port 支持硬件流控制?
Serial Port Programming on Linux(转载)
boost asio串口编程问题:serial_port如何重新打开串口?
Serial Port Programming using Win32 API(转载)
Boost::asio::serial_port - 迁移到 boost 1.7.1 版时使用 io_service.read() 函数