串口通信的应用十分广泛,所以在QT下编写一个串口通信程序就显得尤为重要。下面将一步一步叙述开发过程:
1、下载第三方QT串口类,免积分
http://download.csdn.net/detail/cmh477660693/9726584
2、首先来看一下串口通信几个关键文件:
posix_qextserialport.cpp和posix_qextserialport.h文件定义了一个Posix_QextSerialPort类;
qextserialbase.cpp和qextserialbase.h文件定义了一个QextSerialBase类;
3、读取串口方式:Polling(查询方式)和EventDriven(事件驱动方式)
此两种方式在QextSerialBase类的一个枚举变量QueryMode中定义了。
事件驱动方式:使用事件处理串口的读取,一旦有数据到来,就会发出readyRead()信号,在事件驱动、的方式下,串口的读写是异步的,调用读写函数会立即返回,它们不会冻结调用线程。
查询方式:读写函数是同步执行的,信号不能工作在这种模式下,而且有些功能也无法实现。需要建立定时器来读取串口的数据。
注意:在Windows下支持以上两种模式,而在Linux下只支持Polling模式。
4、总结一下:
我们在Qt中使用这个类编写串口程序,根据平台的不同只需要分别使用四个文件。在Linux下是:
qextserialbase.cpp和qextserialbase.h 以及posix_qextserialport.cpp和posix_qextserialport.h