米饭用英语怎么读:VB中richtextbox和串口通信的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 10:21:13
用VB编了一个用串口从单片机接收数据的程序,将接收到的数据显示到richtextbox文本框里面,现在的问题是,当接收了一定量的数据(约10000组)后,提示“缓冲区溢出”,应该是串口的缓冲区溢出吧?为什么前面的数据没有这个错误?
请各位达人帮忙分析一下原因,会不会是每接收一组数据追加到richtextbox尾部,数据越多追加速度越慢导致的啊?如果是这样,应该怎么解决?
谢谢大家!
我已经知道了,不是因为受到干扰,而是vb6在textbox底部添加文本只能使用text1.text=text1.text+"asdf"这样的形式,而不存在appendtext之类的方法。text1.text越来越大,这个运算的开销也越来越大,所以速度会越来越慢。
解决办法:使用listbox代替richtextbox
谢谢回复的朋友

估计你对MSCOMM控件的属性RThreshold的设置为1,由于串口通信易受干扰,在接收较多数据后会出错,以至引起串口的接收缓冲区溢出。建议你接收下位机的数据信息条按固定字节长度处理,即将MSCOMM控件的属性RThreshold的设置为你需接收的数据字节长度值,这样不易错错,而且在收到符合要求的数据字节流后程序中应将其赋值给变量,并采取措施清除。
此外上位机的接收信息显示也不必使用RichTextbox控件。
详细可参考“人名邮电出版社”的“VISUAL BASIC 串口通信工程实例导航”一书的第一章的代码作接收模块。