qt串口

qt串口通信:
#ifdef _TTY_POSIX
#include "posix_qextserialport.h"
#define QextBaseType Posix_QextSerialPort

#else
#include "win_qextserialport.h"
#define "QextBaseTypeport.h"
#define QextBaseType Win_QexSerialPort
#endif

QextSerialBase类中 QueryMode读取串口的方式:
Polling :建立定时器 读取串口信息
EventDrrivent: 一旦有数据发出readyRead()信号
设置串口为事件驱动模式
mycom = new Win_QextSerialPort("COM1",QextSerialBase::EventDriven);
mycom->open(QIODevice::ReadWrite);
mycom->setBaudRate(BAUD9600);
mycom->setDataBits(DATA_8);
mycom->serParity(PAR_NONE);
mycom->setStopBits(STOP_1);
mycom->setFlowControl(FLOW_OFF);数据流控制
mycom->setTimeout(500);
connect(mycom,SIGNAL(readyRead()),this,SLOT(readMycom()));

void Widget::readMycom()
{
 if(mycom->buteAvailable()>= 8)
 {
  QByteArray temp = mycom->readAll();
  ui->textBrowser->insertPlainText(Temp);

}

}

使用Polling模式:
mycom = new Win_QextSerialPort("Com1",QextSerialBase::Polling);
readTimer = new QTimer(this);
readTimer->start(100);
mycom->setTimeout(10);  将数据放入串口缓冲区
connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()));

Linux :

mycom = new Posix_QextSerialPort("/dev/ttyS0",QextSerialBase::Polling)

www.yafeilinux.com 文档

原文地址:https://www.cnblogs.com/countryboy666/p/11523648.html

时间: 2024-11-07 14:05:46

qt串口的相关文章

Qt 串口通信

在Qt5之前,串口通信基本依赖于第三方库,下面是我曾接触过的串口通信类库: 名称 语言 平台   QextSerialPort QT C++ Win/Linux http://sourceforge.net/projects/qextserialport/files/ QSerialPort QT C++ QT5已经集成 libserial C++ Linux http://files.cnblogs.com/kyyblabla/libserial-0.5.2.gz.7z 以上串口通信类库通信过

QT开发(五十)——QT串口编程基础

QT开发(五十)--QT串口编程基础 一.QtSerialPort简介 1.串口通信基础 目前使用最广泛的串口为DB9接口,适用于较近距离的通信.一般小于10米.DB9接口有9个针脚. 串口通信的主要参数如下: A.波特率:衡量通信速度的参数,表示每秒钟传送的bit的个数.例如9600波特表示每秒钟发送9600个bit. B.数据位:衡量通信中实际数据位的参数,当计算机发送一个信息包,实际包含的有效数据位个数. C.停止位:用于表示单个包的最后一位.典型的值为1和2位. D.奇偶校验位:串口通信

Qt 串口类QSerialPort 使用笔记

Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供官方的对RS232串口的支持,编写串口程序很不方便.现在好了,在 Qt5.1 中提供了QtSerialPort模块,方便编程人员快速的开发应用串口的应用程序. 本文就简单的讲讲QtSerialPort模块的使用. 当前的QtSerialPort模块中提供了两个C++类,分别是QSerialPort 

QT 串口通讯软件编写

QT是一款基于C++的.跨平台,可移植性强的GUI开发工具.本案例是使用QT来开发一款用于串行通讯调试的上位机. 关键词:QT 串行通讯 波形绘制 QextSerialPort QWT 问题1:实现曲线滑动效果. 每次串口会接收到若干新数据设为n,总共用于显示图形的数组长度为N,那么就需要将数组元素同时左移n个单元,然后再最后空出来的n个单元填充新的元素. 这种方法的缺点:需要移动大量的元素,比如数组原始长度N为1000,那么如果插入一个新的元素,就需要将原始数组左移1999个,再插入最后一个元

QT 串口通信 数据16进制发送

在QT中进行串口通信时,很多情况要用到发送16进制的数据.从网上找来了一段代码测试能用: static QByteArray QString2Hex(QString str) { QByteArray senddata; int hexdata,lowhexdata; int hexdatalen = 0; int len = str.length(); senddata.resize(len/2); char lstr,hstr; for(int i=0; i<len; ) { hstr=st

Qt串口通信专题教程

查看以前的教程:Qt编写串口通信程序全程图文讲解 查看Wincom和Lincom介绍:Qt跨平台串口通信软件Wincom与Lincom 下载软件,文档和源码:资源下载 --------------2010年7月8日更新--------------– 网友 赵文杰 使用多线程完成的linux下的串口通信. 下载源码:下载 ------------------------------------- 以下是正文: 前言 去年我使用Qt编写串口通信程序时,将自己的学习过程写成了教程(Qt编写串口通信程序

QT串口模拟-基本界面

最近在重新学习u/cos-ii,学习嘛,以一个小东西练手是最好的学习方式,所以有了串口解析模块,算是填充我的代码库吧, u/cos-ii 模拟的是单片机端的串口解析,上位机串口调试是用Qt写的,由于windows下c语言开发串口不是很方便,所以我选择数据传输方式采用tcp方式,用socket来进行数据传输, 基本的模型就是,qt做tcp的server端,可以同时连接多个下位机,同时发送,同时接受,点对点,点对多的发送数据, u/cos-ii 写的windows端的tcp client端口,连接q

Qt串口实现921600波特率的方法

环境配置: 主机:XP QT:5.4.0 写在这里的重点并不是告诉人如何在Qt的串口编程中实现921600的Bps. 1.在Qt中使用串口,我们需要一个第三方的串口类:qextserialport.在其qextserialbase.h文件中,提供了如下常用的波特率: enum BaudRateType { BAUD50, //POSIX ONLY BAUD75, //POSIX ONLY BAUD110, BAUD134, //POSIX ONLY BAUD150, //POSIX ONLY B

Qt串口通信接收数据不完整的解决方法(传输图片)

在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况.因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不保证一定是当前所发数据的起始部分.因此串口通信双方在通信前应制定好通信协议,规定好数据的起始和结束标志,串口当读到完整的起始和结束标志之后,才认定读完一条完整的数据. 本例中用串口定时发送当前时间,用"#"表示数据的结尾,定时时间为0毫秒,即能发多快就发多快. //发送 [cpp] vie