• 3934阅读
  • 2回复

[提问]串口接收文件并保存 [复制链接]

上一主题 下一主题
离线兔纸
 
只看楼主 倒序阅读 楼主  发表于: 2012-10-26
— 本帖被 XChinux 从 其它技术开发讨论区 移动到本区(2013-07-13) —
串口接收一个十六进制的文件并将文件保存起来。因为是在LInux中,所以用的是查询模式。
但接收以后发现,每次间隔20多个字节就有几个是错误的。。。。
请各位帮帮忙啊。。
程序如下:
  1. void Download::receiveFile()
  2. {
  3.     qint64 num = myCom->bytesAvailable();
  4.        if (num > 0)
  5.        {
  6.            QFile file("write2fileName");
  7.           //如果打开失败则给出提示并退出函数
  8.           if(!file.open(QFile::Append | QIODevice::Text))
  9.            {
  10.              qWarning("fail to open the file!");
  11.              return;
  12.            }
  13.            QByteArray temp = myCom->readAll();
  14.            QDataStream out(&file);
  15.            out<<temp;
  16.            num = myCom->bytesAvailable();
  17.        }
  18.     
  19. }




离线lvhuat
只看该作者 1楼 发表于: 2013-01-06
错误的?属于中文乱码还是字符不对头
如果是中文乱码,个人指出可能是以下问题:
如果是多线程,那么导致了数据发送不完全就被读取了,加下延时
如果是中文乱码所致,做下编码处理

离线realfan

只看该作者 2楼 发表于: 2013-01-06
用qextserialport 1.2rc版试试
快速回复
限100 字节
 
上一个 下一个