我用vs2010做了一个上位机,用来采集实验数据,用serialport类做的,接收数据之后
在示例编辑框中显示出来并保存成txt文件,现在它只能显示一个数据然后就不显示了,
我想让它不断的接收数据然后实时显示,求大神指教!!!
如果你是在UI线程While循环里面去读取数据然后打印在编辑框的话要加上Application.DoEvents(),只打印一个是因为循环太快了,你的UI线程一直在处理串口的读取没时间去处理其他消息而造成的“假死”状态,改成如下:
While(/*读取到数据*/)
{
byte[] tempBuffer = serialport.readbytes();//读取串口数据
this.richtextbox1.Text = Encoding.Default.GetString(tempBuffer);//打印读取结果
//最重要的加上这一句代码
Application.DoEvents(); //处理form的其它消息
}
http://download.csdn.net/download/hujiasuta/9917076
现成的数据采集的例子,先采纳以后可以代下载给你。
检查是缓冲问题还是显示问题,可以debug调试跟踪一下
SERIALPORT设置了了每次接收数据的缓冲区长度是多少呢?
如果只接收一个字节,然后中断发送,接收到数据之后,把接收的数据保存起来了,就需要把标志位清零。
你尝试一下,开一个独立的线程去把接收到的数据显示到界面。让接收数据跟显示数据是独立运行。