串口接收的数据记录问题
做了个串口收发程序,用一个多行文本框来记录接收到的字符。
现在的做法是设置串口控件每接收到一个字符即产生中断,然后在中断处理函数中把接收到的字符添加到文本框中显示。
问题是当发送端持续不断的发数据时,文本框会非常频繁的更新,结果造成整个软件界面完全就死机了!一点反应都没有。
若设置比如接收到8个字符才中断,则发送方只发一个字符的状况下又无法接收。
也想到用线程,同前所述一样,发送端持续发送时,线程越开越多,很快就崩溃了。
目前用了个折衷的办法,就是接收到的字符先存起来,到一定长度再显示,但这个长度太短时与一个字符一显示一样会界面死机。太长时显示明显变慢,不能即时显示。
不知别人的类似程序是如何做的,各位有没有好的方法。
[解决办法]
可以记录收到数据的最后的时间,超过一定时间没有数据可刷新
[解决办法]
或者使用个定时器定时刷新