• 7192阅读
  • 3回复

[提问]qt 串口通信 如何把缓冲区的数据全部放进另一个变量? [复制链接]

上一主题 下一主题
离线lacuss
 
只看楼主 倒序阅读 楼主  发表于: 2013-01-26
<DIV tar?>
<DIV id=read_tpc mb10?>请问qt如何增加一个接收从串口读来数据缓冲区,然后判断数据是否已经接收完毕,完毕时才返回说有改缓冲区的值给后面的函数处理? <DIV mb10?> <DIV mb10?>QByteArray temp = myCom->readAll();  //读取串口缓冲区的所有数据给临时变量temp<DIV mb10?>请问qt中怎么将源源不断读进来的temp循环放进放进一个数组,使后面的函数可以处理这一长串的数据?<DIV mb10?> <DIV mb10?>比如我输入:1234567<DIV mb10?>readAll()可能分几次才读完,寄temp=12 temp=34 temp=567<DIV mb10?>如何得到完整的temp_2=1234567?给后面的函数处理?<DIV mb10?>
离线lacuss
只看该作者 1楼 发表于: 2013-01-26
回 楼主(lacuss) 的帖子
怎么没有回车- -再发一遍
请问qt如何增加一个接收从串口读来数据的缓冲区,然后判断数据是否已经接收完毕,完毕时才返回说有改缓冲区的值给后面的函数处理?

QByteArray temp = myCom->readAll();  //读取串口缓冲区的所有数据给临时变量temp

请问qt中怎么将源源不断读进来的temp循环放进放进一个数组,使后面的函数可以处理这一长串的数据

比如我输入:1234567

readAll()可能分几次才读完,即temp=12 temp=34 temp=567

如何得到完整的temp_2=1234567?给后面的函数处理?
离线realfan

只看该作者 2楼 发表于: 2013-01-26
要有个标志或判断标准,知道什么时候接收 完全

可以这样:
QByteArray  buffer;
while(未达到条件)
{
      buffer.push_back(myCom->readAll());
      //可以休眠一会
}
跳出循环后,buffer的内容就完整了
离线心竹园长

只看该作者 3楼 发表于: 2017-05-03
好棒~
快速回复
限100 字节
 
上一个 下一个