qt做串口调试助手——通信收发篇

qt实现串口调试助手串口初始化串口调试助手的初始化,一般包括波特率、端口号、奇偶校验、数据位和停止位。如果最终需要将串口商业化,一般这些参数都会交给用户自定义,但我们写了自己用,且上位机和下位机同时开发,则除了端口号,其余参数都会在代码里面定义好。端口号一般采用自动扫描更新可用串口的方式,比直接列举COM1、COM2等要好很多。 //参数初始化 global_port.setBaudRate(QSerialPort::Baud115200); //波特率 global_port.set
摘要由CSDN通过智能技术生成

qt实现串口调试助手

串口初始化

串口调试助手的初始化,一般包括波特率、端口号、奇偶校验、数据位和停止位。如果最终需要将串口商业化,一般这些参数都会交给用户自定义,但我们写了自己用,且上位机和下位机同时开发,则除了端口号,其余参数都会在代码里面定义好。
端口号一般采用自动扫描更新可用串口的方式,比直接列举COM1、COM2等要好很多。

	//参数初始化
 	global_port.setBaudRate(QSerialPort::Baud115200);  //波特率
    global_port.setParity(QSerialPort::NoParity)  ;   //无奇偶校验
    global_port.setDataBits(QSerialPort::Data8);    //8位数据位
    global_port.setStopBits(QSerialPort::OneStop);  // 1位停止位
    //定时扫描和更新串口
    timer = new QTimer;
    connect(timer,&QTimer::timeout,this,&MainWindow::showValidPort);//实时更新端口号
    timer->start(1000); //每1000ms定时检测串口状态
    foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) //扫描可用串口
    portStringList += info.portName();
    ui->comboVolt1->addItems(portStringList);//将扫描的端口号添加到下拉框

自定义通信协议

为了避免数据传输过程中丢失,我们不会直接接收并使用下位机发送的数据,而是拟定通信协议,包括设置帧头、数据位长度、数据、校验位、帧尾等。这样可以通过对帧头、帧尾的检验,防止数据在传输过程中有丢失。
下图是我根据自己的需求拟定的通信协议,一般如果能通过校验位的校验和帧头帧尾的检测,就说明数据在传输过程中没有丢失。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值