QT creator实现串口通信操作方法

QT creator实现串口通信操作方法

 虚拟串口软件模拟了两个串口,并且互相连通的,就是从com7发送的数据,com8可用接收,反过来也一样。
软件使用com7,串口调试工具使用com8,就可以测试软件的运行情况

安装虚拟串口软件:

虚拟串口软件vspd - txwtech - 博客园虚拟串口软件vspd http://www.winwin7.com/soft/25710.htmlhttps://www.cnblogs.com/txwtech/p/16530492.html

 pro文件添加:

QT+=serialport

构造函数里面初始化端口:

MainWindow_Serial_Port::MainWindow_Serial_Port(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow_Serial_Port)
{
    ui->setupUi(this);
    ui->comboBox_Port->addItem("COM7");
    ui->comboBox_Port->addItem("COM8");
    q_serial_port=new QSerialPort();
}

打开串口

 q_serial_port->setPortName(ui->comboBox_Port->currentText());
    //打开串口
    if(!q_serial_port->isOpen())
    {


        if(!q_serial_port->open(QIODevice::ReadWrite))
        {
            QMessageBox::information(this,"error","串口打开失败");
            return;
        }
        else
        {
            AddLogInfo("打开串口成功");
        }
    }
    else
    {
        AddLogInfo("串口已经打开");
    }

串口的配置

 q_serial_port->setBaudRate(int_BaudRate);
    // q_serial_port->setBaudRate(QSerialPort::Baud9600);
    //设置数据位数(8位)
    q_serial_port->setDataBits(QSerialPort::Data8);
    //设置奇偶校验(没有)
    q_serial_port->setParity(QSerialPort::NoParity);
    //设置停止位 (1)
    q_serial_port->setStopBits(QSerialPort::OneStop);
    //设置流控制(没有)
    q_serial_port->setFlowControl(QSerialPort::NoFlowControl);
//绑定读数据slot
QObject::connect(q_serial_port, SIGNAL(readyRead()), this, SLOT(ready_read_data()));

发送数据:

void MainWindow_Serial_Port::on_pushButton_send_data_clicked()
{
    if(q_serial_port->isOpen())
    {
        ready_write_data(ui->lineEdit_send_data->text());
        AddLogInfo("发送:"+ui->lineEdit_send_data->text());
    }
    else
    {
       // ui->textEdit_recv_data->append("串口没有打开");
        AddLogInfo("串口没有打开");
    }

}

接收数据:

//读取串口信息
void MainWindow_Serial_Port::ready_read_data()
{
    quint8 i=0;
    quint8 arrDLT645Frame[12] = {0x68, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x68, 0x13, 0x00, 0xDF, 0x16};
    QByteArray baDLT645Frame;
    for (; i<12 ;i++)
    {
        baDLT645Frame.append(arrDLT645Frame[i]);
    }
    //QByteArray baDLT645FrameToHex = baDLT645Frame.toHex();
    //std::string baDLT645FrameToStdString = baDLT645FrameToHex.toStdString();
    //QString strDLT645Framer = QString::fromStdString(baDLT645FrameToStdString);
    //ui->DispBTextEdit->setText(strDLT645Framer);
    QByteArray data;
    data = q_serial_port->readAll();
  //  std::string string_data = data.toStdString();
     //std::string string_data = data.tolocal8();
   // QString qarrayToStr = QString::fromStdString(string_data); //无法显示中文
     QString qarrayToStr = QString::fromLocal8Bit(data);//可以显示中文

    // QMessageBox::information(this,"接收信息", qarrayToStr);
    //ui->textEdit_recv_data->append(qarrayToStr);
    AddLogInfo("接收:"+qarrayToStr);
}
QByteArray data; 
QString qarrayToStr = QString::fromLocal8Bit(data);//可以显示中文,字节转字符串
QString write_content="";
QByteArray send_data=write_content.toLocal8Bit(); //字符串转换中文显示,字符串转字节

工程源码更新:

Serial_Port_Demo_QT实现串口通信.rar-QT文档类资源-CSDN下载https://txwtech.blog.csdn.net/article/details/1260更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/txwtech/86265509

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Linux使用Qt Creator实现2048游戏,你需要遵循以下步骤: 1. 安装Qt Creator 如果你还没有安装Qt Creator,请根据你的Linux发行版的说明进行安装。例如,如果你使用的是Ubuntu,则可以在命令行输入以下命令来安装Qt Creator: ``` sudo apt-get install qtcreator ``` 2. 创建Qt项目 在Qt Creator创建一个新项目,选择Qt Widgets Application并命名为2048。然后选择一个存储项目的位置并单击下一步。 3. 创建2048游戏界面 在Qt Creator,你可以使用拖放功能来创建2048游戏的界面。选择“设计”选项卡,在左侧工具箱选择widget,然后在右侧编辑器绘制2048游戏的界面。 4. 实现游戏逻辑 在Qt Creator,你可以使用C++编写游戏逻辑。打开2048项目的源代码文件,并在其实现游戏逻辑。你需要实现游戏的移动、合并和分数计算等功能。 5. 调试和测试 在Qt Creator,你可以使用调试器来调试你的代码。单击F5键启动调试器,然后使用游戏界面测试你的代码。 6. 编译和构建 一旦你完成了2048游戏的代码编写和调试,你可以使用Qt Creator的构建工具来构建你的应用程序。在Qt Creator,选择“构建”选项卡,然后单击“构建项目”按钮。 7. 运行应用程序 一旦你构建了你的应用程序,你可以在Qt Creator直接运行它。在Qt Creator,选择“运行”选项卡,然后单击“运行”按钮。你的2048游戏应该会在Qt Creator启动。 这些就是在Linux使用Qt Creator实现2048游戏的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

txwtech笛克特科

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值