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如何重新打开串口?

npm serial-port 获取输出以响应组件

Serial Port Programming using Win32 API(转载)

Boost::asio::serial_port - 迁移到 boost 1.7.1 版时使用 io_service.read() 函数