十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我觉得你很有可能是接收数据和处理数据写在一个函数或过程里的,这样如果处理数据工作量很大的时候会漏掉接收数据的。建议把接收数据和处理数据分在两个地方,接收归接收,处理归处理。就是接收过程收到串口字节后保存在数组里就结束了,接收过程尽量简短。然后另设一个定时器扫描数组进行命令解析和处理。
创新互联专注于企业营销型网站、网站重做改版、汝城网站定制设计、自适应品牌网站建设、HTML5建站、商城系统网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为汝城等各大城市提供网站开发制作服务。
另外看一下波特率什么的要选择合适。
不要反复打开关闭串口
。每次执行操作的时候都会把缓冲区的东西清掉,你也不要清空发送接收区,不用你管,只要你读取了,它就清空了。最好这个独产的进程,只管接收,收下后快速的存到别的地方供你调用。另外缓冲区设置大一些可以避免丢数据。操作得当不会丢掉数据。
我没搞过串口通信,但或许会对你有所帮助:
1)发送的时候你是把5个数据打包在bData中一起发送的,
2)接收的时候你认为一个数据包只会产生一个OnComm事件。
但实际上你可能错了,一个数据包有可能产生若干个OnComm事件,你的程序导致Text2.Text只能接收到最后一个。
建议:
Text2.Text = rectext这句改成Text2.Text = Text2.Text rectext