请问STM32虚拟串口打开情况下被拔出,上位机软件怎么处理?

2019-07-14 15:58发布

我现在是能检测到虚拟串口被拔出的,不过现在需要串口再次插上去的时候,能够再次使用,这个就不好弄了,因为拔掉之前的串口状态是Open着的,串口再插上去不管你Open()还是Close()软件都会出问题!而且这种情况去操作,上位机软件经常出现崩溃闪退的现象!
有什么方法让上位机软件不闪退崩溃吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
tianyu5655
1楼-- · 2019-07-15 09:50
 精彩回答 2  元偷偷看……
亲爱的娜娜
2楼-- · 2019-07-15 11:25
应该不会崩溃吧,我们经常遇到是再次打开的时候会失败而已。
tianyu5655
3楼-- · 2019-07-15 11:29
亲爱的娜娜 发表于 2018-11-16 10:54
应该不会崩溃吧,我们经常遇到是再次打开的时候会失败而已。

是很奇怪,在Debug调试下就不会出现闪退的现象,直接打开exe就会出现闪退的现象!
tianyu5655
4楼-- · 2019-07-15 15:35
你我然后 发表于 2018-11-16 09:22
你明显是处理的不对。WM_DEVICECHANGE消息只是告诉你设备有变化,具体还要处理DBT_DEVICEQUERYREMOVE,DBT_DEVICEQUERYREMOVEFAILED,DBT_DEVICEREMOVEPENDING这几种情况。
你可以参考下:https://msdn.microsoft.com/en-us/library/aa363427(v=vs.85).aspx

你好,这个没关系的。
我在  if (Detection.GetComNum() != null)  做了处理了!

就是有一个疑惑的地方,闪退的解决办法?
你我然后
5楼-- · 2019-07-15 19:29
tianyu5655 发表于 2018-11-16 11:30
你好,这个没关系的。
我在  if (Detection.GetComNum() != null)  做了处理了!

你再仔细看下,这是系统在拔掉USB之前,给你一个Close的机会。过了这个机会你再Close就要报错了。因为已经不存在要关闭的设备了。
tianyu5655
6楼-- · 2019-07-15 21:12
 精彩回答 2  元偷偷看……

一周热门 更多>