VS2010基于C#编写的窗体应用程序,串口读取数据,转换为到text.box里显示,如何实现实时

VS2010基于C#编写的窗体应用程序,串口读取数据,转换为到text.box里显示,如何实现实时更新?串口不定时往上位机发送数组数据,上位机进行截取转换处理并显示在窗体的textbox内。

有一个datareceive事件 可以检测接收数据时触发. 触发后读取即可.

一般来说,理论就是上面这样处理.追问

我用的就是这个触发,读取转码的数据仅第一次正确,以后的都是错码,这是什么问题?

追答

这也是为何我在最后写理论上就是这样处理的......datareceive事件 往往在实际中都会出问题.
其实在处理设备和PC通信有一个很重要的问题需要解决, 那就是同步, 你在设计前需要针对你所要面对的串口信号发送频率做一个预先判断.
因为你的接收串口必须要做两个动作: 接收缓存并显示, 清空缓存. 那么在这两个动作之间如果发来了数据就会丢失.那么后续一系列用事件触发来接收的就会出问题了.
所以你必须根据实际使用情况来设置读取的间隔时长, 或者自定义通信规则来读取自定长度的缓存. 或在串口上设置发送信号后强制等待下一次的发送时间.(这个类似PC接收数据后回传一个信号给串口, 串口接收到这个信号后再允许发下一次的信号)等等.
以上都是解决方法

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答