qt使用Qextserialport写串口程序,readAll()读取数据时不准确

图片说明
readCom()函数读取时,当串口发送字符串ab时,程序只能接收到一个字节。

0

1个回答

你要连续读取,读取以后输出到缓冲区

3
weidongcha
weidongcha 怎么实现连续读取呢?每次读取数据后就把它显示出来,可能对把连续的数据分成块来读。
3 年多之前 回复
weidongcha
weidongcha 怎么实现连续读取呢?每次读取数据后就把它显示出来,可能对把连续的数据分成块来读。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
QT 使用QextSerialPort类通过串口接收数据时出现readyread()不产生信号
QT 使用QextSerialPort类通过串口接收数据时出现readyread()不产生信号,槽函数无响应,试了很多办法,在网上找到的都是QT5自带的QtSerialPort类问题,对我这个问题都不好使。其实很简单,将串口设置为事件驱动模式就好了QextSerialBase::EventDriven。myCom = new QextSerialPort(PortName,QextSerialBa...
Qt上第三方串口类QExtSerialPort的使用
由于项目中需要用到串口,在Qt4下没有串口库,发现大多数人使用的是qextserialport,于是我也选择使用它。 qextserialport的源代码可以去http://sourceforge.net/projects/qextserialport/下载。 如果是在windows下串口编程,则使用到的文件是qextserialbase.cpp和qextserialbase.h,qext
QSerailPort使用readAll()接收数据不全问题解决
使用vs2013+qt5.5.0使用QSerialPort时,因qt-add插件中没有QSerialPort模块,但qt安装目录中有QSerialPort类,故将qt安装目录下的QSerialPort头文件、库文件、dll动态库拷贝出来,使用 vs2013包含进头文件和库文件路径中,当成普通的库来使用。 近日在使用QSerialPort发送接收串口命令时,发送给串口的命令都正常,请串口
win Qt qextserialport 编写串口通信程序全程图文讲解
(说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动。) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类。我们可以去 http://sourceforge.net/projects/qextserialport/files/
Qt串口通信接收数据不完整的解决方法
    在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况。因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不保证一定是当前所发数据的起始部分。因此串口通信双方在通信前应制定好通信协议,规定好数据的起始和结束标志,串口当读到完整的起始和结束标志之后,才认定读完一条完整的数据。    本例中用串口定时发...
QT 串口QSerialPort + 解决接收数据不完整问题
类:QSerialPort 例程:Examples\Qt-5.9.1\serialport\terminal,该例子完美展示了qt串口收发过程,直接在这上面修改就可以得到自己的串口软件。核心方法 //读串口 QByteArray QSerialPort::readAll() //写串口 qint64 QSerialPort::write(const QByteArray &data) 注
arm linux下使用 qextserialport 编写串口小程序
转载自:http://wenku.baidu.com/link?url=1YsJOHAW0EYV-sqhD1Hhr4BW1f3gtBy793GO8mkFIk3YqWOrKrZJYIlzDxkH97ReeOIBysuqVTQRK1082ytlUKJ_6Gi900Hkg4znzNO6BDu 最近需要编写一个基于linux的QT串口通信程序,进行简单的数据收发功能,参考网上的例子之后,发现大多
win Qt qextserialport 编写串口通信程序全程图文讲解
转:http://blog.csdn.net/u010580186/article/details/51595227(说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动。)在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类。我们可以去http://...
linux下使用 qextserialport 编写串口小程序
转载自:http://wenku.baidu.com/link?url=1YsJOHAW0EYV-sqhD1Hhr4BW1f3gtBy793GO8mkFIk3YqWOrKrZJYIlzDxkH97ReeOIBysuqVTQRK1082ytlUKJ_6Gi900Hkg4znzNO6BDu 最近需要编写一个基于linux的QT串口通信程序,进行简单的数据收发功能,参考网上的例子之后,发现大多是基
QT串口编程库--qextserialport-1.2win-alpha.zip,适合于windows、linux下的QT串口编程
qextserialport-1.2win-alpha,QT串口编程第三方库,适合于windows、linux下的QT串口编程
Qt TCP通信readAll()读取接收数据时无法读完大数据量的解决法案
在测试利用TCP传输图片的时候,服务器使用Qt的TCP类库。在TCP接收槽函数中使用readAll()成员函数的时候发现readAll()并不能读取全部的数据,比如,在客户端发送一张2MB的图像,但是使用readAll()得到的QByteArray的大小并不是2MB。我经过测试,每次readAll()返回的QByteArray的size是随机的。         Qt官方也是无语函数名起的贼不好
(转载)Qt串口通信接收数据不完整的解决方法
学习了一篇好博客,特此转载 灿哥哥的文章:原文链接 在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况。因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不保证一定是当前所发数据的起始部分。因此串口通信双方在通信前应制定好通信协议,规定好数据的起始和结束标志,串口
QT开发的串口通讯软件(基于qextserialport工具)
分享一下基于QT开发串口助手的一些代码,具体是基于qextserialport的串口通讯开源类库实现的
Qt中realAll() 接收数据不完整的问题
解决realAll() 接收数据不完整的问题 在帧尾增加一个判断即可QByteArray byteArray; //声明全局变量 QByteArray temp = serial->readAll(); if(!temp.isEmpty()) { byteArray.append(temp); //在字符串后面增加字符 if(byteArray
串口的读数据接收readAll()函数的问题
void MainWindow::serialRead() { // ui->textEdit->append(serial.readAll());///此句话要注释才能看到qdebug的显示出来的数据 QByteArray buf; buf = serial.readAll(); QString str = QString(buf)...
qt使用qextserialport-1.2rc进行串口通信编程
qt使用qextserialport-1.2rc进行串口通信编程 1,下载最qextserialport-1.2rc源码 http://code.google.com/p/qextserialport/ 2,修改源码 修改qextserialenumerator_p.h文件,将0x0500修改为0x0501,解决window下编译提示“DEVICE_NOTIFY_ALL_INTER
QT第三方串口类Win_QextSerialPort,串口工具插拔后无法继续使用问题
if(myCom!=NULL){ myCom->close(); myCom->setParent(NULL); delete myCom; myCom=NULL; } myCom = new Win_QextSerialPort(portData.Com,QextSerialBa...
Qt串行通信库 QextSerialPort需要注意的问题 便签
串行通信库 QextSerialPort需要注意的问题 1. 赋值运算符重载 2. RTS/CTS 3. 数据位和停止位 如果要从8N2转换成5N1.5,必须采用8N2--->8N1--->5N1--->5N1.5的方式 4. 时限设置 5. hEvent overlapWrite.hEvent没有找到销毁的位置
qt 操作串口
第三方类下载 https://sourceforge.net/projects/qextserialport/files/ 目录介绍 搭建工程 拷贝qextserialbase.cpp、qextserialbase.h、win_qextserialport.cpp和win_qextserialport.h到自己的工程下 //添加头文件 #include "win_qextseri...
Qt4第三方库qextserialport
Qt4第三方库qextserialport
QT编写串口助手所遇到的问题!关于readall()函数的疑惑,还望大神们不吝赐教,非常感谢
首先交代的环境。下位机是用STM32 开发的一个模块,模块串口收到指定的字符串命令后,会通过DMA回复特定的字符串命令。 在QT里关于串口读取的: 收到的数据debug后显示如下: 实际应该显示的字符应该是:#SWAP:FlashWrite OK! (使用其他串口工具已经验证过) 疑问:1,单片机串口发送数据时以ASC码发送的么? 2,是不是因为串口读取缓...
Qt qextserialport类 发送数据大于127 发生错误既最高位置零的问题
近日项目使用Qt用到串口,使用了第三方库qextserialport,开始进行一切顺利,后来调试时出现问题,发送串口数据时,大于127的数接收会发生错误。 例如:发送0xe1,接收到的却是0x61,接收值和发送值之间正好相差了127.发送的方法是按照第三方库例程里的方式使用了QByteArray。 在网上查找资料,发现众多网友都碰到了这种问题,而回答基本有三种: ①无解,求解中…… ②将发
QextSerialPort类多线程读写串口的方法
QextSerialPort是一个跨平台的第三方串口类,可以很方便地在QT中对串口读写操作。但是默认使用的读写方式是查询方式,一般都是在程序中使用定时器。如果需要快速响应串口读写,可以使用多线程方式。在qtcentre论坛上找到了一位作者贴出了自己的源码,在此转贴出来,方便大家。(原帖地址:http://www.qtcentre.org/threads/21063-QextSerialPort-w
关于Qt5 SerialPort串口传输丢失数据问题。
什么是Qt5 serialPort? 虽然现在大多数的家用PC机上已经不提供RS232接口了。但是由于RS232串口操作简单、通讯可靠,在工业领域中仍然有大量的应用。Qt以前的版本中,没有提供官方的对RS232串口的支持,编写串口程序很不方便。现在好了,在 Qt5.1 中提供了QtSerialPort模块,方便编程人员快速的开发应用串口的应用程序。 Qt5 serialPort存在的问题。
qt5.10 串口通信 QSerialPort 的使用
在qt5中,使用QSerialPort进行串口通信。主要用到的QSerialPort 使用步骤 步骤一:在.pro文件中进行声明 QT += serialport //在.pro文件中添加这个声明 步骤二:实例化 QSrerialPort QSerialPort *serial=new QSerialPort //实例化QSerialPort 并且开辟空间 ...
QT实现串口通信(附源码下载)
1 Qextserialport类介绍      在Qt5之前的版本中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,本文章主要是讲解怎样利用此类实现串口通信。      注意:Qt5发布之前,Qt实现串口通信一般是采用第三方类库qextserialport。Qt5发布后自带了QtSerialPort 能够支持串口通信。 2  文件下载地址
Qt采用Qextserialport 接收发送16进制数据
为了配合项目的使用,需要写个Qt的串口工具,后来发现Qextserialport 这个库很强大,参考网络霍亚飞的一篇doc,很快就搞定了界面以及基本的一些功能,不过由于项目里面需要16进制的数据收发,所以,需要支持16进制的收发,百度+谷歌下,搞定了,代码贴下,只贴核心代码: 接收16进制: //串口接收数据 void YComWindow::readYpfCom() { QByte...
Qt中串口16进制发送和接收数据
Qt中串口16进制发送:                   QString str; str = ui->sendtext->toPlainText(); QByteArray senddata; String2Hex(str,senddata); buf=senddata; //发送数据
Qt:串口通信总结
1、创建桌面程序2、在.pro添加串口支持:#增加串口支持 QT += serialport3、在头文件添加串口类// 提供访问串口的功能 #include <QSerialPort> // 提供系统中存在的串口信息 #include <QSerialPortInfo> 4、设置界面5、头文件#ifndef MAINWINDOW_H #define MAINWI...
Qt串口编程出错问题解决
Qt串口编程出错问题解决方案        使用Qt在 Windows和Linux 下进行串口编程,整个教程笔者也是使用网上很流行的一片帖子:Qt编写串口通信程序全程图文讲解。这篇帖子访问量和转载量都很多,笔者也不清楚我给出的地址是不是原创作者,不过这都无关紧要(但是这篇帖子的大量转载给网络搜索带来巨大的麻烦,搜了半天“Qt串口编程”都是这篇文章的大量转载版本,笔者在此建议读者转载须谨慎,多收藏
Qt5.7 QSerialPort串口使用时readyRead()信号不产生解决方法
最近在使用QSerialPort时发现一个问题。使用事件的方式readyRead()信号始终不能产生,也就进入不到槽函数里。 但是我发现,每次使用ArduinoIDE的串口连接后,再次使用自己的串口就可以产生readyRead()信号。初步判断要么是打 开方式不对,要么就是打开后少了什么。于是各种查,无奈网上资料不多,全是qsocket的。不过还是被我翻到了一个博客, 不过这个博客没有讲这个
用QextSerialPort库,获取系统当前可用串口信息的方法
国庆归来,今天终于解决了遗留在国庆前的获取系统可用串口的问题,总结下!   其实,问题的原因很简单,没有使用最新的库,之前用的qextserialport-1.2win-alpha,而在这个版本中,QextSerialEnumerator类刚刚被加入,功能还没有完善。后来发现最新的库已经更新到了qextserialport-1.2rc,果断用之!     具体步骤: 1,将库文件包含进来。(
QT5 串口收发实例代码
以下代码是自己测试门禁系统使用的 主要用到了串口的接收和发送  开发环境:xp  QT5.1.1 串口:38400   N  8  1 自动检测可用串口   在xp上测试没问题 有些usb转串口会出现波特率不准的问题,CH340的usb转232使用完全正常 以下为收发的线程.h 和.cpp两个文件 最后附上转sacii显示的代码   #ifndef MYTHREAD_
qt串口QextSerialPort简单实现
QT4串口开发之Qexserialport库的简单实现,详情请移步博客。下位机通过串口发送数据给上位机程序,上位机将接收到的数据打印出来。
Linux下基于QT的串口通信程序(Tiny6410)
由于有关ARM开发板很多外设都是支持串口通信的,所以在QT下编写一个串口通信程序就显得尤为重要。下面将一步一步叙述开发过程: Linux下QT串口通信相关文件及例程下载!!! 1、开发板上设备驱动位置:/dev下存有各种设备驱动文件名 2、首先来看一下串口通信几个关键文件: posix_qextserialport.cpp和posix_qextserialport.h文件定义了
QT实现十六机制接收串口程序,自己写的代码,打开编译就能用!!!
使用的是Qextserialport库官方库,程序亲自编写,实现QT十六机制接收串口程序
Qt QFile的ReadAll函数的注意
以下事个人用来提醒自己的记录: 在使用FIle打开文件时,如果要确认文件的内容,使用readAll函数会导致file里存储的数据清空,这样子的话会使得比如setstylesheet出问题,或者是QDomDocument的setContent出问题,今天一直setContent一直出现unexpected end of file,查了好久,才发现这个错误,以前setstylesheet时也出现这样
Qt5中自带串口类QtSerialPort
目前,该模块API只包括两个类:Serial和SerialPortInfo。 【SerialPort】 SerialPort是该模块的基础类,提供了一系列基础的方法和属性来访问串口资源。 【SerialPortInfo】 SerialPortInfo是一个帮助类。它提供了系统上可用的串口的信息。 使用方法 pro中添加 QT       += se
学习笔记之----在Qt下的串口读写
      Tags:  linux Qt 串口        这几天一直纠结于Qt下的串口读写,我把疑问和解决过程陆续记录下来,怕以后忘记了嘿嘿。 欢迎大家一起学习分享经验,但是禁止抄袭呀!       因为Qt没有提供给我们现成的串口类,在Qt下想实现串口读写操作,有两种办法:       1.自定义串口类       通常我们都是使用写好的第三方串口类,当然了有linux下与window下两个版本,我是做Linux下开发的,所以这里就先提供Linux下的串口类资源,网上相关的资源很多很多,baidu
Qt编写的串口收发数据小程序(源码)
使用Qt开发的一款串口收发数据的小程序,可给大家借鉴参考。代码中如有疑问请指出,会为你一一解答。
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python写串口读写教程 python写程序的教程