Qt之串口编程--使用事件驱动来触发接收数据
2013-05-26 19:31
681 查看
用到的类:Qextserialbase和Win_Qextserialport,这两个类不是库里自带的,需要百度下,可以找到这两个类的源文件。
在使用的时候,我定义了一个Win_QextSerialPort类的对象myCom,要想执行myCom.open(QIODevice::ReadWrite)之前必须先执行myCom.setPortName(n)来设置串口的名字,不然会返回错误。之后就可以设置波特率一些参数,使用中发现波特率之类要在open之后才有效,如果在open之前就设置了,可能这个设置会无效,看了源码发现在设置之前会用isOpen()判断。
还有个比较好用的设置就是:
默认的设置都是用QextSerialBase::Polling,这种我只能用定时器来做了,还有该设置也要放在open之前
这样我们就可以用:
将myCom的readyRead信号和实现接受数据的槽连接,这些每当有数据接收的时候就可以调用这函数来现实了。
在使用的时候,我定义了一个Win_QextSerialPort类的对象myCom,要想执行myCom.open(QIODevice::ReadWrite)之前必须先执行myCom.setPortName(n)来设置串口的名字,不然会返回错误。之后就可以设置波特率一些参数,使用中发现波特率之类要在open之后才有效,如果在open之前就设置了,可能这个设置会无效,看了源码发现在设置之前会用isOpen()判断。
还有个比较好用的设置就是:
myCom.setQueryMode(QextSerialBase::EventDriven);//设置事件驱动
默认的设置都是用QextSerialBase::Polling,这种我只能用定时器来做了,还有该设置也要放在open之前
这样我们就可以用:
connect(&wincom.myCom,SIGNAL(readyRead()), this,SLOT(DisReiveData()));//收到数据
将myCom的readyRead信号和实现接受数据的槽连接,这些每当有数据接收的时候就可以调用这函数来现实了。
相关文章推荐
- Qt5.2的串口类接收不到串口数据,和事件机制
- 异步SOCKET编程-发送和接收数据异步事件触发
- 串口类的DateReceived事件---发送一次指令,就会自动触发此事件接收数据
- Qt5自带串口调试 --使用signal接收数据,自动侦测端口列表
- Java_网络编程_使用UDP协议发送及接收数据
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- Qt串口接收数据长度不稳定问题
- (STM32 A串口2)接收(STM32 B数据printf2),同时STM32 A使用串口1printf给电脑
- 请教串口编程:如何实现信号驱动事件
- [Socket网络编程]由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
- QT 的 串口接收的数据 QByteArray 类怎么得到16进制
- ExtJS梦想之旅(三)--综合练习(Ext窗口的使用和事件驱动编程)
- 教你使用stm32接收串口的一帧数据!
- STM32使用DMA加串口空闲中断接收数据
- STM32使用串口1配合DMA接收不定长数据,大大减轻CPU载荷。
- STM32使用串口1配合DMA接收不定长数据,大大减轻CPU载荷。
- MFC串口编程——使用WM_COMM_TXEMPTY_DETECTED来判断接收结束
- 多线程串口接收数据 | 全局变量的使用
- STM32—无需中断来实现使用DMA接收串口数据(原创)
- 20120908-串口编程-MSComm使用2-接收Step by Step