VC++ 串口接收到大量数据 EDIT控件刷新速度跟不上

当串口接收到大量的数据的时候,EDIT控件做为显示数据,但是EDIT的刷新速度跟不上,在串口停止发送后好长时间,,EDIT的数据才能显示完成
波特率是115200的,有什么办法把刷新速度提上去吗?

vc

9个回答

你要用异步,接收到后,不要处理,先放到内存保留,后台开一个线程,逐条处理,处理完一条就通知界面显示

可以放在字符串变量中,然后每收到多少数据再更新一次界面。

楼上 缓存数据 一次性输出显示的方法就不多提了, 但 顺便问一下楼主是调用什么方法触发刷新界面的。

收发数据用一个单独的线程,主线程只处理UI,这样基本就可以了,不会卡。
串口通信能有多少数据?

串口接收好数据不用每次都更新显示。等IDLE的时候在更新就可以了。

楼上 缓存数据 一次性输出显示的方法就不多提了, 但 顺便问一下楼主是调用什么方法触发刷新界面的。

我不是专门做这个的,我是开发单片机,需要把单片机的数据上传到电脑上进行数据分析,用到时龚建伟老师的源代码,里面简单更改一下,在接收到数据STOP的时候能够主动把接收EDIT的数据清空,然后把数据以TXT文件形式保存即可。

@李鸿志 我现在已经实现把接收的字符通过判断实现存储和清空,但是因为接收的数据量有点大,速度也挺快,感觉是EDIT一直在刷新,速度又跟不上
在我数据结束发送后,edit还在一直接收刷新数据,最后倒是能把左右的数据结束完成,有没有办法把速度提上去,发送和接收数据相隔很远,不确定下
一次的数据什么时候发送。

我也在做这方面,但是是初学,所以想请问串口接收到一个缓存中(BYTE或PBYTE)吧,但是因为输出到Edit控件中就必须先转成CString(看到EDit的成员函数都是操作CString的),即问题在于如何将BYTE数组转成CString,网上查了一下有限个数的数组可以依次Format到CString,但因为现在是大量的数据,所以这个问题如何解决?还有Edit控件显示接收到的数据,肯定不能是“00010203”.而最好是“00 01 02 03”,即还要插入空格,想问你是怎么实现的,有源码吗?方便给一下吗?现在比较急

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问