QT实现串口调试助手(八):HEX与字符串格式处理

本文介绍如何在QT实现的串口调试助手中添加HEX格式的收发功能,包括对接收的HEX数据进行十六进制字符串回显,以及将发送面板上的十六进制字符串转为HEX格式数据发送。

上一篇:
QT实现串口调试助手(七):字体设置面板创建及窗体间传值
 

串口调试工具往期相关文章


串口工具一般都会有HEX格式的收发处理,现在我们来给串口工具添上这一功能。

这主要分为两类,一类是把串口工具收到的HEX格式数据,以十六进制字符串回显到接收面板。另一类是把发送面板上的十六进制字符串,转为HEX格式数据发送出去


1、接收数据处理

原先我们已经在主界面添加了HEX发送和接收框了,没有添加的话,添加一个即可



然后更改一下原先的接收处理函数:

//填入接收数据到面板
void MainWindow::insertDataToPlain()
{
    curDateTime = QDateTime::currentDateTime();

    QString tempRecData = "\r\n";

    if(ui->timeZoneCheckBox->isChecked())
    {
        tempRecData.append(curDateTime.toString("[hh:mm:ss]")).append("R:");
        ui->uartReadPlain->insertPlainText(tempRecData);
        if(ui->checkBoxHexR->isChecked())
        {
            QString ss;
            for(int c :uart_rec_ss)
            {
                if(c>=0)
                {
                    ss += QString(" %1")
                            .arg(c, 2, 16, QChar('0'));
                }
                else
                {
                    ss += QString(" %1")
                            .arg(c+256, 2, 16, QChar('0'));
                }
            }
            ui->uartReadPlain->insertPlainText(ss);
        }
        else
        {
            ui->uartReadPlain->insertPlainText(uart_rec_ss);
        }
    }
    else
    {
        if(ui->checkBoxHexR->isChecked())
        {
            QString ss;
            for(int c :uart_rec_ss)
            {
                if(c>=0)
              
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值