VS2010基于C#编写的窗体应用程序,串口读取数据,转换为到text.box里显示,如何实现实时 30
VS2010基于C#编写的窗体应用程序,串口读取数据,转换为到text.box里显示,如何实现实时更新?串口不定时往上位机发送数组数据,上位机进行截取转换处理并显示在窗体...
VS2010基于C#编写的窗体应用程序,串口读取数据,转换为到text.box里显示,如何实现实时更新?串口不定时往上位机发送数组数据,上位机进行截取转换处理并显示在窗体的textbox内。
展开
1个回答
展开全部
有一个datareceive事件 可以检测接收数据时触发. 触发后读取即可.
一般来说,理论就是上面这样处理.
一般来说,理论就是上面这样处理.
追问
我用的就是这个触发,读取转码的数据仅第一次正确,以后的都是错码,这是什么问题?
追答
这也是为何我在最后写理论上就是这样处理的......datareceive事件 往往在实际中都会出问题.
其实在处理设备和PC通信有一个很重要的问题需要解决, 那就是同步, 你在设计前需要针对你所要面对的串口信号发送频率做一个预先判断.
因为你的接收串口必须要做两个动作: 接收缓存并显示, 清空缓存. 那么在这两个动作之间如果发来了数据就会丢失.那么后续一系列用事件触发来接收的就会出问题了.
所以你必须根据实际使用情况来设置读取的间隔时长, 或者自定义通信规则来读取自定长度的缓存. 或在串口上设置发送信号后强制等待下一次的发送时间.(这个类似PC接收数据后回传一个信号给串口, 串口接收到这个信号后再允许发下一次的信号)等等.
以上都是解决方法
MarsCode
2024-08-21 广告
2024-08-21 广告
MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。 MarsCode 编程助手提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、...
点击进入详情页
本回答由MarsCode提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询