本文为了记录学习qt的串口编程,详细情况请查看转载处http://blog.chinaunix.net/uid-22670933-id-1771588.html
但是在QT比较高的版本里面,已经实现了串口的操作。我用的就是5.5
1 在base类的.h文件里面include串口类: #include
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
阅读(519) | 评论(0) | 转发(0) |
0
上一篇:没有了