Qt上第三方串口类QExtSerialPort的使用
来源:互联网 发布:怎样发淘宝买家秀 编辑:程序博客网 时间:2024/05/29 18:00
由于项目中需要用到串口,在Qt4下没有串口库,发现大多数人使用的是qextserialport,于是我也选择使用它。
qextserialport的源代码可以去http://sourceforge.net/projects/qextserialport/下载。
如果是在windows下串口编程,则使用到的文件是qextserialbase.cpp和qextserialbase.h,qextserialport.cpp和qextserialport.h,win_qextserialport.cpp和win_qextserialport.h
如果在linux下使用,则需将win_qextserialport.cpp和win_qextserialport.h 换为 posix_qextserialport.cpp和posix_qextserialport.h。
在linux下使用时编译会出现错误,错误定位在setTimeout(Settings.Timeout_Sec, Settings.Timeout_Millisec)函数,直接将第一个参数Settings.Timeout_Sec删除即可。
接下来就是串口使用的设置了:
struct PortSettings portSettings;
portSettings = { BAUD57600, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 2 };定义一个串口参数结构体,分别存放串口波特率,数据位,校验位,停止位,数据流控制位和延时时间。
改结构体和这些参数都来自于qextserialbase.h中的枚举类型:
定义串口
Win_QextSerialPort *SerialPort;QString _SerialPortName = "\\\\.\\";_SerialPortName.append(PortName);SerialPort = new Win_QextSerialPort(_SerialPortName, portSettings, QextSerialBase::Polling);SerialPort->open(QIODevice::ReadWrite)然后进行读写,发现串口设置并未生效。
在网上找到了解决方案在http://download.csdn.net/source/1763251里面说到串口设置时需要先将串口打开,然后将串口的设置参数传入。
于是将前面代码稍作修改:
QString _SerialPortName = "\\\\.\\";_SerialPortName.append(PortName);SerialPort = new Win_QextSerialPort(_SerialPortName, QextSerialBase::Polling);if (SerialPort->open(QIODevice::ReadWrite)){SerialPort->setBaudRate(portSettings.BaudRate);SerialPort->setParity(portSettings.Parity);SerialPort->setStopBits(portSettings.StopBits);SerialPort->setDataBits(portSettings.DataBits);//SerialPort->setTimeout(5);}这样就可以完成了串口的基本设置,接下来就可以进行读写了
QSerialPort->putChar(c);QSerialPort->getChar(c);字节读写。
也可以将readyRead()信号关联到自己的槽函数利用SerialPort->readAll();读取所有数据。
- Qt上第三方串口类QExtSerialPort的使用
- Qt使用第三方串口类qextserialport无法打开串口的可能解决方案(文章中描述的可以解决)
- 利用第三方qextserialport类完成QT下串口MyComm程序
- Qt串口类库QExtSerialPort的安装与简单使用
- Qt串口通信QextSerialPort类
- Qt使用第三方类打开串口号10以上的失败问题解决方法
- 自学Qt之路——串口编程(使用第三方提供的类)
- 自学Qt之路——串口编程(使用第三方提供的类)
- Qt第三方串口类应用方法
- qt使用qextserialport-1.2rc进行串口通信编程
- QextSerialPort类多线程读写串口的方法
- Qt: 基于qextserialport实现的一个小串口工具
- [MFC]使用强大的第三方串口类 CSerialPort
- Qt扩展QextSerialPort类
- 为Qt扩展QextSerialPort类
- linux下使用 qextserialport 编写串口程序
- Qt串口通信第三方类flush函数不能清空串口解决办法
- Qt使用第三方库
- Android优化之ViewStub
- node C++扩展(2) 尝试翻译node官网文档
- codeforces B. School Marks
- JAVA图形编程Swing之——JPanel绘图
- 使用指针方式进行数组排序 选择排序:
- Qt上第三方串口类QExtSerialPort的使用
- 数字图像模式识别技术详解【笔记】
- GRBL八:STM32代码移植——串口
- CF 557C(Arthur and Table-直接暴力)
- hdu 5058 So easy
- 括号配对问题
- 冒泡排序-用指针方式实现
- 对容器元素重新排序的算法
- [iuud8]基于cocos2dx2.26在mac下编译通过的.so文件移植到win32位环境