QT串口教程1

新建工程,选QWidget为基类,如下图所示。


在.pro文件,中添加QT+=serialport

编辑界面文件,如下图所示。(所有控件名都要重新设置)


右击你的控件,如:按键,再点转到槽,就可以跳到该按键的槽函数。


在widget.h中添加头文件,以及槽函数和私有的串口类的声明

#include <QtSerialPort/QSerialPort>
 
 
private slots:
    void on_openPortBtn_clicked();	//利用“转到槽添加的槽函数声明
    void read_Com();			//手动添加的槽函数声明,用于读出串口缓冲区的内容
    void on_SendBtn_clicked();		//利用“转到槽添加的槽函数声明
 
private:
    Ui::Widget *ui;
    QSerialPort serial;			//声明串口类


main.cpp可以不改,然后,在widget.cpp中添加槽函数的定义

void Widget::on_openPortBtn_clicked()
{
    if(ui->portNameComboBox->isEnabled())
    {
        ui->openPortBtn->setText("ClosePort");		//按下“OpenPort后,按键显示为“ClosePort”
        ui->portNameComboBox->setDisabled(true);	//按下“OpenPort后,禁止再修改COM口
        serial.setPortName(ui->portNameComboBox->currentText());	//设置COM口
        serial.setBaudRate(QSerialPort::Baud9600,QSerialPort::AllDirections);//设置波特率和读写方向
        serial.setDataBits(QSerialPort::Data8);		//数据位为8位
        serial.setFlowControl(QSerialPort::NoFlowControl);//无流控制
        serial.setParity(QSerialPort::NoParity);	//无校验位
        serial.setStopBits(QSerialPort::OneStop);	//一位停止位
        serial.close();					//先关串口,再打开,可以保证串口不被其它函数占用。
        if(serial.open(QIODevice::ReadWrite))		//以可读写的方式打开串口
        {
            connect(&serial,SIGNAL(readyRead()),this,SLOT(read_Com()));	//把串口的readyRead()信号绑定到read_Com()这个槽函数上
        }
    } else {
        ui->openPortBtn->setText("OpenPort");		//按下“ClosePort后,按键显示为“OpenPort
        ui->portNameComboBox->setEnabled(true);		//按下“ClosePort后,COM口可被修改
        serial.close();					//关串口
    }
}
 
void Widget::read_Com()
{
    QByteArray temp=serial.read(1);//在缓冲区中读一个byte
    if(!temp.isEmpty())//如果读到的数据不为空
    {
    ui->recvTextBrowser->insertPlainText("0x");
    ui->recvTextBrowser->insertPlainText(temp.toHex());//显示接收到的数据的十六进制
    ui->recvTextBrowser->insertPlainText(" ");
    }
}
 
void Widget::on_SendBtn_clicked()
{
    serial.write(ui->sendTextEdit->toPlainText().toLatin1());//以ASCII码的形式通过串口发送出去。
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值