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

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

1个回答

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

weidongcha
weidongcha 怎么实现连续读取呢?每次读取数据后就把它显示出来,可能对把连续的数据分成块来读。
接近 4 年之前 回复
weidongcha
weidongcha 怎么实现连续读取呢?每次读取数据后就把它显示出来,可能对把连续的数据分成块来读。
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
qextserialport中的readAll的问题!!!
串口另外一端发送的0xff,qt程序这边用readAll读出来变成了0x7f这个问题怎么解决?rn大家有没有碰到过这种情况?
qt串口QextSerialPort简单实现
QT4串口开发之Qexserialport库的简单实现,详情请移步博客。下位机通过串口发送数据给上位机程序,上位机将接收到的数据打印出来。
QT串口读取数据
QT串口读取数据
关于QT串口读取数据
我想实现,读取串口数据进行作图。我的环境是qtopia-2.1.1、qt-embedded-2.3.10、qt-x11-2.3.2。我把我的程序列出来,希望大家给找找错误。[code=C/C++][/code]rn/****************************************************************************rn** Form interface generated from reading ui file 'drawdemo.ui'rn**rn** Created: Wed Feb 20 13:05:54 2008rn** by: The User Interface Compiler (uic)rn**rn** WARNING! All changes made in this file will be lost!rn****************************************************************************/rn#ifndef MYPLOTTER_Hrn#define MYPLOTTER_Hrn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rnrn#include rn#include rn#include rnrnclass QVBoxLayout; rnclass QHBoxLayout; rnclass QGridLayout; rnrnclass MyPlotter : public QWidgetrn rn Q_OBJECTrnrnpublic:rn MyPlotter( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );rn ~MyPlotter();rnprotected:rn virtual void paintEvent(QPaintEvent *);rnprivate slots:rn void rad();rn void savefile();rn void dos();rn void sendFG();rn void flushBuff();rn rnprivate:rn char buffer1[500];rn char buffer2[500];rn int buffer[10];rn int shijz[250];rn int highb;rn int lowb;rn float x_data[250];rn QTimer *timer0;rn QFrame *frame;rnpublic:rn QLabel *x_label[10];rn QLabel *y_label[10];rn QPainter *painter;rn QMultiLineEdit *medit; rn QLabel *file_name;rn QString file_name_in;rn QLineEdit *file_name_edit;rn QPushButton *button0;rn QPushButton *button1;rn QPushButton *button2;rn QPushButton *button3;rn QString convert_data;rn int confirm_flag;rn char ReceiveData[20];rn int fd;rn int i;rn int j;rn int qianb;rn int baib;rn int shib;rn int geb;rn int otd;rn int m1;rn int m2;rn int ret;rn int k;rn int wtable;rn int rtable;rn char buff[10];rn int yCoor[10];rn int xCoor[10];rn int hui[10];rn void drawHui();rn;rnrn
QT写串口时调试报错,
Debug Assertion Failed!Program: F:\procedure\LIBS_GUI\LIBS_V3.0\x64\Debug\LIBS_V3.0.exeFile: f:\dd\vctools\crt\crtw32\misc\dbgdel.cppLine: 52Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)For in...
QT 使用QextSerialPort类通过串口接收数据时出现readyread()不产生信号
QT 使用QextSerialPort类通过串口接收数据时出现readyread()不产生信号,槽函数无响应,试了很多办法,在网上找到的都是QT5自带的QtSerialPort类问题,对我这个问题都不好使。其实很简单,将串口设置为事件驱动模式就好了QextSerialBase::EventDriven。myCom = new QextSerialPort(PortName,QextSerialBa...
Qt QFile的ReadAll函数的注意
以下事个人用来提醒自己的记录: 在使用FIle打开文件时,如果要确认文件的内容,使用readAll函数会导致file里存储的数据清空,这样子的话会使得比如setstylesheet出问题,或者是QDomDocument的setContent出问题,今天一直setContent一直出现unexpected end of file,查了好久,才发现这个错误,以前setstylesheet时也出现这样
Qt4.8使用第三方串口类QExtSerialPort(雷达)
相对于使用QT5的QSerialPort串口类需要各种麻烦,还是选中了QExtSerialPort. qextserialport下载:http://sourceforge.net/projects/qextserialport/ 需要使用到的文件: windows平台下:qextserialbase.cpp,extserialbase.h,win_qextserialport.cpp,wi...
QextSerialPort串口收发数据的问题
我的是嵌入式linux,使用网上例程QextSerialPort类收发数据,遇到2个问题:rn1,myCom->isOpen()这一句结果好像一直是0,但是我后续初始化串口却可以使用,请问如何判断串口是否被成功打开?rn2,串口可以接收数据,但是不能发送,下面函数我将接收到的字符串发送回去,对方却收不到,为什么呢?终端能够打印出接收到的数据。。。rnvoid Widget::readMyCom()rnrn QByteArray temp = myCom->readAll();rn qDebug()<<"usart data?:"<write(temp);rn rnrnps:不是我的串口的问题,我用系统带的串口工具测试我板子的串口收发均正常。rnrn有人遇到过类似问题吗?麻烦指点一下
Qt使用qextserialport发送数据全零
最近公司在做一个串口通信的东西,于是用Qt5.5.1写了一个串口发送数据的工具,使用的是qextserialport第三方模块,会出现一个很诡异的问题。rn 用虚拟串口自己测试的时候发送是正常的,数据也是正确的。但是连上串口设备后(每次拔插后使用我的软件)发送的数据就变成全零了,重启软件也不行。但是,如果每次插上串口设备后,先使用网上随便下载的串口小助手打开COM口并随便发送点数据,再使用我的软件发送就变得正常了。拔下设备再插上,我的软件又不行了,感觉每次都需要串口小助手疏通一下,我的才能正常工作。rnrn有没有哪位有经验的大侠指导一下。谢谢啦!
qt串口通信教程及qextserialport库文件
qt串口通信教程及qextserialport库文件 教程是图文的很详细! z只要按着教程做会达到你想要的效果,本人亲测!
qextserialport
QT端口类 适用于网络通信编程 可以直接调用
串口读取数据时ReadFile()的问题???
[code=C/C++][/code]rnBOOL ReadFile(rn HANDLE hFile, //文件的句柄rn LPVOID lpBuffer, //用于保存读入数据的一个缓冲区rn DWORD nNumberOfBytesToRead, //要读入的字符数rn LPDWORD lpNumberOfBytesRead, //指向实际读取字节数的指针rn LPOVERLAPPED lpOverlapped //rn);rn[code=C/C++][/code]rn在串口数据传输时用他读取数据,怎么知道要读入的字符数呢?即 DWORD nNumberOfBytesToRead//要读入的字符数rn
关于qextserialport串口发送数据问题
我用了qextserialport库来读取串口,打开串口方法如下:rnmyCom = new QextSerialPort(portName/*,QextSerialPort::Polling*/);rn如果 我用了QextSerialPort::EventDriven模式,则接受数据正常,但发送数据每次返回值都是0,如果我选择Polling模式,则发送数据返回值是正常,但收不到数据了,请问是什么问题?
Qt下的串口怎么写
我在linux下用Qt写了一个串口调试工具,当接上GSM模块调试的时候,采用TEXT模式,发送AT,在接受的textBrowser里就只显示AT,并没有显示:AT OK ,包括其他的AT指令也一样,发送什么就只接受什么,短信不能发送成功。我想请问一下,是不是要在串口的源程序里要加入一些什么GSM的接口,或者跟AT指令相关的一些代码什么的,因为我没有写这一类的东西?串口工具中,串口,波特率,校验,数据位什么的选择都是可以,GSM模块在windows下的一个串口工具中调试是成功的。
用Qt Vs写的串口程序
能够实现串口通信,实现hex的收发。用到了qtserialport
用Qt写串口接收程序,出现问题
我用Qt写了一个串口数据接收的程序,但是接收到的是一个错误的字符,用qDebug()输出来的是双引号的半边",但是我用串口调试助手能接收到数据,而且接收到数据之后,把串口调试助手关闭,再打开我的Qt程序,又能正常的接收到串口数据了,请问这是怎么回事啊,希望路过的大神不吝赐教,感激不尽rn定义串口的代码:波特率9600,数据位8位,无校验码,停止位1位,无流控制rn使用轮询机制接收,com3口rnstructPortSettingsmyComSetting=BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,10;myCom=newWin_QextSerialPort("com3",myComSetting,QextSerialBase::Polling);
Qt写的发送串口程序,测试数据用
针对博客: https://blog.csdn.net/humanking7/article/details/80856505,写的串口发送程序,基于QT5.5开发,通过串口发送数据,用Matlab的Simulink进行接收。
超声波测距程序,利用串口读取数据
超声波测距程序,利用串口读取数据,超声波使用的的是US-100模块
使用qt在windows的vs下写串口助手
这是一篇总结性的文章,主要记录一下自己在写串口助手时遇到的问题和解决方案。 1 如果你和我一样,刚开始接触qt,那写一个可用的串口助手,可以按照下面这些文章的顺序开始。            1  图解Qt安装(Windows平台)            2 [Qt笔记]vs中添加模块            3  QT串口通信            4  QT5串口编程        ...
QT如何使用QSerialPort类写串口
先说我要输出串口的数据rn协议为:0x84, channel number, target low bits, target high bitsrn假设需要第二信道输出值为6000(0101110 1110000)rn协议的二进制则为10000100, 00000010, 01110000, 00101110rn协议的十六进制则为0x84, 0x02, 0x70, 0x2Ernrn官方给了个c的例子rnserialBytes[0] = 0x84; // Command byte: Set Target.rnserialBytes[1] = channel; // First data byte holds channel number.rnserialBytes[2] = target & 0x7F; // Second byte holds the lower 7 bits of target.rnserialBytes[3] = (target >> 7) & 0x7F; // Third data byte holds the bits 7-13 of target.rn这里得target应该是十六进制的6000吧???rnrn之后是重点,如何使用"QSerialPort::write(command)"rn原来command定义成char,但是使用不了,貌似qt需要用个QByteArray来写串口,如何写这段程序???
串口读取数据 使用的MSCOMM控件
可以用于读取串口端数据,VC6.0下编译通过,不需硬件支持,挺有用的小程序
QextSerialPort
虽然Qt5已经有了自带的串口类,但是还有很多地方在用qt4所以测试了一下QextSerialPort代码,文件中包含QextSerialPort源码,程序在ubuntu下可运行,如果出现无法打开串口的情况,请用sudo执行程序,可解决问题。
串口读取数据
//全局 SerialPort portSMQ = new SerialPort(); //扫描监听 (窗体load事件里面) portSMQ.DataReceived += new SerialDataReceivedEventHandler(portSMQ_DataReceived); #region [接收扫描数据]         void portSMQ_DataR
串口的读数据接收readAll()函数的问题
void MainWindow::serialRead() { // ui-&amp;gt;textEdit-&amp;gt;append(serial.readAll());///此句话要注释才能看到qdebug的显示出来的数据 QByteArray buf; buf = serial.readAll(); QString str = QString(buf)...
串口 QByteArray temp = myCom->readAll();困惑
刚学qtrn 看了别人写的用Qt的串口工具rn QByteArray temp = myCom->readAll();rnrn Win_QextSerialPort *myCom; 但是在这个类中没有readALL()这个成员函数rn myCom->readAll();(意思难道不是调用这个类中的成员函数)rnrn求助 谢谢rn
QT 编写串口程序
我用网上的第三方类,结果没显示任何东西,虽然也没报错,有没有不用网上提供的那个类的方法啊
QMLserial Qt串口程序
嵌入式Linux的qml的串口的程序,Qt语言开发,测试已通过
armlinux下的qt串口程序
armlinux下的qt串口程序,串口调试助手源码
Qt串口程序
Qt串口程序,用于接收单片机的温度,发送给单片机系统时间。压缩文件里只有Qt的串口程序。
QT串口程序
基于QT5写的简要串口程序。基本上实现了串口搜索,串口波特率配置,以及串口的收发等操作。
qt串口程序
用qt编写的串口助手程序,能够进行波特率的选择等等
Qt编写的串口程序
此代码是我用qt编写的,经过调试可以使用,内含原代码,学习者可以自行修改。
串口负数数值显示不准确的解决办法
之前用MFC写上位机程序的时候,需要从串口拿数值格式的数据,由于串口通讯一般是字符型数据,也就是无符号位的数据,当我使用串口发送1个字节的数字格式数据(-128~+127)时,他会默认把二进制最高位当作数字位,也就变为了(0~+255)范围,由于我传递的值有负数,也就导致数值为负数时,无法准确显示真实值。   解决方法就是自己写个函数,做个判断,看不懂的建议学习一下补码,掩码方面的内容。
QT串口使用
1.前言 Qt5.0以上都是使用官方的串口库,简单几步操作就可以使用。 2.演示 //首先是pro文件加入官方串口库信息 QT += serialport //mainwindow.h里加入串口头文件 #include &amp;lt;QtSerialPort/QSerialPort&amp;gt; #include &amp;lt;QtSerialPort/QSerialPortInfo&amp;gt; ...
qextserialport的调用问题(串口无法打开)
现用qextserialport的0.9版,qt:3.3.4版,在qt designer下编写,把qextserialport的类都放入了我要编写的工程中,现在想实现的功能是按某个按钮能够打开串口,并能读写串口数据,下面是我的代码:rnopen()rn Posix_QextSerialPort * fd = new Posix_QextSerialPort("/dev/ttyS0");rn fd->setBaudRate(BAUD115200); //com1,115200,n,8,1rn fd->setFlowControl(FLOW_OFF);rn fd->setParity(PAR_NONE);rn fd->setDataBits(DATA_8 );rn fd->setStopBits(STOP_1);rn clippingsListBox->insertItem("N,8,1",0);rn if (fd->open())rn rn clippingsListBox->insertItem("opened",0);rn fd->putch('a');rn fd->getch();rn fd->writeBlock("abc",3);rn fd->readBlock(buff,512);rn fd->flush();rn fd->close();rn rnrn现在的问题运行的结果不显示if语句中的"opened",是不是说明串口未打开呢,奇怪的是把串口改成"/dev/tty"时却能显示"opened""rn这是怎么回事呢?rn请大侠们指点一下
QT串口多线程使用
使用movetothread方式。 ySerialPort = new YSerialPort(); serialPortThread = new QThread(); ySerialPort-&gt;moveToThread(serialPortThread); serialPortThread-&gt;start(); connect(serialPortTh...
QT串口使用总结
总结一下使用Qt使用串口的重要的知识。Qt已经提供了串口的类 QSerialPort,看看QT的相关帮助文档很快就能开发出一个简单的串口应用。Qt的帮助文档很丰富,在这个过程中也看了很多的博文以及Qt的帮助文档,受益匪浅。因为参考的博文很多,我也只是大概瞟一眼大家的思路,大同小异,在此也就不列举出参考的博文的出处了。下面总结下几个重要的地方。 第一个就是查找串口,使用了一个foreach来查找电脑...
qextserialport类编写qt串口编程例子
利用第三方类的运行在window操作系统的串口收发程序,编程软件是qt4.
c#串口readline()读取数据时碰到的问题。
本人初学c#一星期,诸多问题请教高手。rnrn我将newline设置为换行符rn然后在用串口readline读取数据时碰到一问题rnrnstring str;rnstr = serial.readline();rnrnchar[] chardata = str.ToCharArray();rnrn当发送的数据的数据为 13 0D 0A时可以正确读取13rnrn但是当发送数据 88 0D 0A时,在调试窗口可以看到读出的值为63rnrn当发送数据大于0x7F时,读取的数据均为63。请教高手何解。。。。。rnrn还有rnrn以前写c语言时可以很方便的用指针将四个字节组成一个intrnrnchar c[4] = 0x01, 0x02, 0x03, 0x04;rnint *p = (int *)c;rnrnc#里没有指针,请问有没有类似的方法能达到相同目的rnrn由于是写单片机的上位机程序,类似的问题串口通信时会经常碰到。。。。rnrn谢过先哦~~~~~~~~~~~rnrn我的分不多额。。能给的都给了。。救救我吧
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数