当串口接收到大量的数据的时候,EDIT控件做为显示数据,但是EDIT的刷新速度跟不上,在串口停止发送后好长时间,,EDIT的数据才能显示完成
波特率是115200的,有什么办法把刷新速度提上去吗?
你要用异步,接收到后,不要处理,先放到内存保留,后台开一个线程,逐条处理,处理完一条就通知界面显示
可以放在字符串变量中,然后每收到多少数据再更新一次界面。
收发数据用一个单独的线程,主线程只处理UI,这样基本就可以了,不会卡。
串口通信能有多少数据?
串口接收好数据不用每次都更新显示。等IDLE的时候在更新就可以了。
楼上 缓存数据 一次性输出显示的方法就不多提了, 但 顺便问一下楼主是调用什么方法触发刷新界面的。
楼上 缓存数据 一次性输出显示的方法就不多提了, 但 顺便问一下楼主是调用什么方法触发刷新界面的。
我不是专门做这个的,我是开发单片机,需要把单片机的数据上传到电脑上进行数据分析,用到时龚建伟老师的源代码,里面简单更改一下,在接收到数据STOP的时候能够主动把接收EDIT的数据清空,然后把数据以TXT文件形式保存即可。
@李鸿志 我现在已经实现把接收的字符通过判断实现存储和清空,但是因为接收的数据量有点大,速度也挺快,感觉是EDIT一直在刷新,速度又跟不上
在我数据结束发送后,edit还在一直接收刷新数据,最后倒是能把左右的数据结束完成,有没有办法把速度提上去,发送和接收数据相隔很远,不确定下
一次的数据什么时候发送。
我也在做这方面,但是是初学,所以想请问串口接收到一个缓存中(BYTE或PBYTE)吧,但是因为输出到Edit控件中就必须先转成CString(看到EDit的成员函数都是操作CString的),即问题在于如何将BYTE数组转成CString,网上查了一下有限个数的数组可以依次Format到CString,但因为现在是大量的数据,所以这个问题如何解决?还有Edit控件显示接收到的数据,肯定不能是“00010203”.而最好是“00 01 02 03”,即还要插入空格,想问你是怎么实现的,有源码吗?方便给一下吗?现在比较急