社区应用 社区服务 会员列表 统计排行 帮助 银行
  • 109阅读
  • 2回复

串口通讯中的端口控件问题反馈及其我的修复办法

楼层直达
级别: 幼儿园
发帖
14
铜币
9
威望
0
E积分
0
技术积分
0
1.端口.启动有时候会失败,经常现象,这在任何系统中都有这种现象,为了解决这个问题采取了这种方案:


端口.启动 ()如果一次不能启动,那么延迟50毫秒后再次启动,时间不能低于40毫秒,精准测试过的,必须是延迟(),你用延时()指令毫无用处.


2.端口.发送数据,在win10系统中有死机现象,是普遍现象,不是极个别现象,且很多人无法解决.现象描述:你第一次点击发送数据,如果设备并没有返回数据,或者返回数据只有一个字节,那么你再次发送数据将会导致程序卡死,动不了啦.解决方案:


如果返回数据个数为0或者为1个字节,那么你必须重启端口,不重启,再次发送数据就会造成程序死循环,我看很多人都反映这个问题,都无人能解决,我给出的这个方法管用,但是别扭,难受啊,毕竟是BUG。


3.端口.停止位数=2毫无用处,导致找不到端口.实际应用中端口的停止位要么是1,要么是2,我从未听说过有停止位是1.5的,可能设计中存在,现实生活中却没有.如果你的端口停止位数是2的话,你这里的 端口.停止位数=3,必须是等于3,等于2 就通讯不了,这样编程多么的难受和别扭啊.我建议,如果非要保留 停止位数=1.5这个选项,那么把它挪移到第三位,因为他用不到.端口.停止位数=3的时候实际的停止位是1.5,1就是1,2就是2,编程运算也简单.看官方端口.停止位数的说明:数据类型为:整数型。可以为以下值之一:1: 1位;  2: 1.5位;  3: 2位。

我建议:可以为以下值之一:1: 1位;  2: 2位  3: 1.5位;


[ 此帖被plcjiemi在2017-11-17 13:42重新编辑 ]
级别: 商业用户
发帖
76
铜币
2925
威望
0
E积分
0
技术积分
0

只看该作者 板凳  发表于: 11-15
必须支持下
级别: 幼儿园
发帖
14
铜币
9
威望
0
E积分
0
技术积分
0
只看该作者 沙发  发表于: 11-14
自己顶一下,希望引起官方注意。



在WIN10系统中,你如果想自动搜索设备的通讯设置,这成为几乎不可能做到的事情,因为你事先假设的通讯参数不一定正确,返回数据肯定为0个,这就导致死机,必须重启端口,反复的重启端口导致时间很长。XP系统下20秒可以完成,win10下至少要2分钟。


问题又来了,你虽然重启端口可以解决死机问题,但是重启后,端口.数据到达() 这里之前即使有延迟返回来的数据,也一并被清空了,导致你不可能用自动搜索的办法查找设备的通讯波特率及其停止位.校验方式.数据位.
[ 此帖被plcjiemi在2017-11-17 13:40重新编辑 ]
快速回复

限60 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个