用了QT5官方的串口类,发现丢数据很严重!求破!
学QT中,做个串口,先用官方的例子试了下,接受UBOOT发来的数据:结果很差·和secureCRT 完全不能比·求推荐个QT串口实现的好方法!
使用第三方的qextserialport库 xckhmf 发表于 2014-7-3 07:25
使用第三方的qextserialport库
还没过试过,但发现2个类的读写函数基本是一样的· bbs2009 发表于 2014-7-4 19:36
使用第三方的qextserialport库吧。
qtcn上有。
LZ 好像 在 qtcn也发帖了。 谈论 Qt,qtcn 更靠谱 ...
是的,发帖了,额,现在好像发现不是丢数据的问题,因为有的时候是好的,有的时候不行,比较了下,感觉也许是波特率设置不够精确,导致时间长了乱码的出现· 我也用的Qt5的串口,没发现有啥问题。 nongxiaoming 发表于 2014-7-4 22:06
我也用的Qt5的串口,没发现有啥问题。
我发的是UBOOT的数据过来,115200 估计量比较大把·导致出了问题。
咨询下,readall()读缓冲区的时候,如果有新的数据来,底层是怎么处理的?在建立个新的缓冲区,读完数据后,在销毁旧的,读新的?如果这样,就不会丢数据了·如果只是一个缓冲区的话,那读的时候,不就堵塞了写吗·导致丢数据。
一个人· 发表于 2014-7-4 22:29
我发的是UBOOT的数据过来,115200 估计量比较大把·导致出了问题。
咨询下,readall()读缓冲区的时候,如 ...
应该不会是115200的问题,我一直都用的115200啊,没发现有啥问题。你readall的时候,缓冲区有多少自己就给你读回来了,驱动里面串口的缓冲区应该是一个环形缓冲区,这个是不会删除的,会是循环的,只要有空闲的缓冲区数据就读入,缓冲区满应该会有流控,如果你设置有流控的话。没有流控数据会被覆盖,但PC端的响应速度应该是很快的,不至于到缓冲区数据溢出。 本帖最后由 一个人· 于 2014-7-5 18:41 编辑
nongxiaoming 发表于 2014-7-5 00:11
应该不会是115200的问题,我一直都用的115200啊,没发现有啥问题。你readall的时候,缓冲区有多少自己就 ...
恩,我想了下,缓冲区应该是不会丢数据的,那估计是波特率设置时间长了,有偏移· 原来大家都在用qt5啊,试了下,程序可以直接下载到android手机运行,感觉不错。 悟空间66 发表于 2014-7-5 18:54
原来大家都在用qt5啊,试了下,程序可以直接下载到android手机运行,感觉不错。 ...
什么程序呀,还没有试过安卓的·不知道咋样的· 一个人· 发表于 2014-7-5 18:56
什么程序呀,还没有试过安卓的·不知道咋样的·
目前qt5.3 支持android 里面有很多例程,都可以下载到手机里面运行。 悟空间66 发表于 2014-7-5 19:49
目前qt5.3 支持android 里面有很多例程,都可以下载到手机里面运行。
那的装QT5.3 for 安卓版本吧?没有装呢,传几个拉风的上来吧?{:lol:} QTCN 网? qt5的串口类就是来自qextserialport QSerialPort 在子线程里发送数据单次只能发送1K
波特率高115200
我在Qt5.2下用的。 用5.3自带的类,目前串口接收有问题,极少时候接收的是正确的…… 如果是事件触发方式接收,最好自己做一个环形缓冲,另外在开一个线程处理数据 xckhmf 发表于 2014-7-3 07:25
使用第三方的qextserialport库
qt5 就是集成的 qextseriaport 用QtSerialPort表示115200正常.Linux没问题
页:
[1]