Foxtable(狐表)用户栏目专家坐堂 → 关闭串口报错


  共有3365人关注过本帖树形打印复制链接

主题:关闭串口报错

帅哥哟,离线,有人找我吗?
873773115
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2728 威望:0 精华:0 注册:2017/11/5 13:39:00
关闭串口报错  发帖心情 Post By:2021/4/23 10:16:00 [只看该作者]

老师好。现在有个问题请教一下

现在如果在窗体的 afterclose 事件里 使用代码关闭串口,会直接导致系统假死
如果不关闭串口,直接关闭系统,会在系统关闭后,出现 《通用技术平台已停用》

如果在beforecloseproject 事件里 使用代码关闭串口,也会直接导致系统假死

代码如下:
If ports.Contains("COM1") = True AndAlso Ports("COM1").IsOpen Then
    Ports("COM1").Close()
End If

请问老师,如何解决呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 10:46:00 [只看该作者]

放到窗口按钮里点击有没有问题?放到命令窗口执行有没有问题?

 回到顶部
帅哥哟,离线,有人找我吗?
873773115
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2728 威望:0 精华:0 注册:2017/11/5 13:39:00
  发帖心情 Post By:2021/4/23 14:31:00 [只看该作者]

放在窗口按钮里不行,但不是每次都会假死,可能3次会出现一次假死

e.Form.TimerEnabled = False
If ports.Contains("COM1") = True AndAlso Ports("COM1").IsOpen Then
    Ports("COM1").Close()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 14:58:00 [只看该作者]

假死的可能程序还在执行什么代码,等一段时间看看能不能结束

 回到顶部
帅哥哟,离线,有人找我吗?
873773115
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2728 威望:0 精华:0 注册:2017/11/5 13:39:00
  发帖心情 Post By:2021/4/23 15:18:00 [只看该作者]

不是,直接就假死了,等几分钟后任然是假死状态。只能结束进程
这里有个帖子说的问题 和我遇到的是一样的,还提供了解决方法,但是没看懂,请老师帮忙看下

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=884352&ID=132444&skin=1

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 15:27:00 [只看该作者]

他是写错串口名称。

试试每次接收完毕数据后添加一句:Application.DoEvents

 回到顶部
帅哥哟,离线,有人找我吗?
873773115
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2728 威望:0 精华:0 注册:2017/11/5 13:39:00
  发帖心情 Post By:2021/4/23 16:54:00 [只看该作者]

不行,串口数据刷新放在窗口的  timertick事件中了,然后在里面加了 
Application.DoEvents

afterload 事件中设置了打开  timertick 开关
直接窗口没打开就假死了



 回到顶部
帅哥哟,离线,有人找我吗?
873773115
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2728 威望:0 精华:0 注册:2017/11/5 13:39:00
  发帖心情 Post By:2021/4/23 17:02:00 [只看该作者]

老师补充一下,如果电脑没插上与地磅相连的数据线时候,随便怎么操作,啥事儿都没有

只有在线正常连接的时候,数据也正常传输的时候,使用串口关闭时,会出现这种情况

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/23 17:27:00 [只看该作者]

不关闭串口,直接退出窗口,等窗口关闭后,再另外关闭串口有没有问题?

 回到顶部
帅哥哟,离线,有人找我吗?
873773115
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2728 威望:0 精华:0 注册:2017/11/5 13:39:00
  发帖心情 Post By:2021/4/23 18:38:00 [只看该作者]

测试了。也不行,也是直接假死     只要线路正常连接,有数据过来的话   
使用 Ports("COM1").close()  这个方法关闭串口,就会假死  

 回到顶部
总数 23 1 2 3 下一页