Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7115
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-07 11:14
文章分类
文章存档

2015年(3)

我的朋友
最近访客

分类: C/C++

2015-09-07 11:33:01

本文为了记录学习qt的串口编程,详细情况请查看转载处http://blog.chinaunix.net/uid-22670933-id-1771588.html

     但是在QT比较高的版本里面,已经实现了串口的操作。我用的就是5.5

     1 在base类的.h文件里面include串口类: #include <QtSerialPort/QSerialPort>
     2 申请一个串口:QSerialPort *myCom = new QSerialPort(“/dev/ttyUSB0”, Q_NULLPTR); // 这里我的串口是linux下的USB转串口,所以其他情况下请对应各自的串口驱动文件填写。
     3 打开串口myCom->open(QIODevice::ReadWrite); // 读写方式打开,至于串口的设置,这里不需要。默认的即可,波特率9600,无硬件流,8位数据,一位停止位,无校验。需要其他设置可以查阅QT的帮助文档调用接口操作。
     4 在base类里面添加槽函数声明:void myReadCom();
     4 绑定信号槽connect(myCom, SIGNAL(readyRead()), this, SLOT(myReadCom()));    // 其中myReadCom()是自己写的槽函数。具体实现如下:这里写的是测试用

    void Widget::myReadCom()
    {
        QString revBuf;

        revBuf = myCom->readAll();
        ui->textBrowser->insertPlainText(revBuf);
    }

     以上经过测试,信号槽的读取方式不需要网上说的那样用延时读取,直接读取即可。

    如果发现编译出现错误:/home/QT_study/QT_mycom/myCom/widget.cpp:14: error: undefined reference to `QSerialPort::QSerialPort(QString const&, QObject*)'

    解决方式:请在pro文件的:QT += core gui添加修改为:QT += core gui serialport





阅读(814) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:关于如何解决qt错误

给主人留下些什么吧!~~