OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3343|回复: 8

STM32虚拟串口的串口调试助手 STM32断电以后会自动退出!

[复制链接]

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-5-14
在线时间
46 小时
发表于 2016-12-20 10:27:07 | 显示全部楼层 |阅读模式
1金钱
原子的XCOM V2.0就不会有这个现象,都是串口没了软件就自动检测到串口消失!我自己写的上位机就会出现,串口没了的话,软件就会自动关闭崩溃掉!

我看了别人的方法,我试了一下,有的时候能自动检测,有的时候还是会自动关闭软件!
        protected override void WndProc(ref Message m)
        {
            if (m.Msg ==  Detection.UsbSet.WM_DEVICE_CHANGE)        // 捕获USB设备的拔出消息WM_DEVICECHANGE
            {
                try
                {
                    comPort.Close();
                }
                catch { }
                if (Detection.GetComNum() != null)
                {
                    try
                    {
                        comPort.PortName = Detection.GetComNum();
                        comPort.BaudRate = Setting.ComSet.comBaudRate;
                        comPort.Open();
                    }
                    catch
                    {
                        comPort.Close();
                        comPort.Open();
                    }
                }
                else
                {
                    comPort.Close();
                }         
            }
            base.WndProc(ref m);
        }


请问有没有 办法解决!

最佳答案

查看完整内容[请看2#楼]

增加一个出错故障检测就可以了,检测出错就跳到出错检测程序
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2016-12-4
在线时间
52 小时
发表于 2016-12-20 10:27:08 | 显示全部楼层
增加一个出错故障检测就可以了,检测出错就跳到出错检测程序
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11539
金钱
11539
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-12-20 11:03:37 | 显示全部楼层

你这是上位机程序吧?
不懂了。

好像串口助手都能正确处理这个事,显示串口找不到,之类,
所以应当不难解决。


回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-5-14
在线时间
46 小时
 楼主| 发表于 2016-12-23 11:27:05 | 显示全部楼层
xuande 发表于 2016-12-20 11:03
你这是上位机程序吧?
不懂了。

我自己做的上位机软件,因为是虚拟串口,所以板子断电时串口会消失,而上位机软件的串口状态还是打开着的,不管板子是不是重新上电,操作串口就会报错!
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11539
金钱
11539
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-12-23 14:03:54 | 显示全部楼层

应当定时检测串口的状态。


回复

使用道具 举报

19

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
金钱
416
注册时间
2016-4-9
在线时间
123 小时
发表于 2016-12-23 15:19:23 | 显示全部楼层
原子的偶尔也会出现这个问题 ,不过大部分时间是卡一下然后就自动关闭串口了
回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-5-14
在线时间
46 小时
 楼主| 发表于 2016-12-26 17:13:38 | 显示全部楼层
本帖最后由 jinghong21 于 2016-12-26 17:16 编辑
dtlz 发表于 2016-12-20 10:27
增加一个出错故障检测就可以了,检测出错就跳到出错检测程序

现在难住的地方就在于,虚拟串口消失,但是PC软件的串口状态还是为Open,你需要将这个串口的状态设置为Close才行是不是,可是你再去操作串口的时候,软件就会自动退出。
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2016-12-4
在线时间
52 小时
发表于 2016-12-27 13:33:14 | 显示全部楼层
如果这个串口没有了,你再操作,那会报错的,只需要在软件上开启错误检测,在错误时跳至错误处理,就可以
回复

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2015-5-14
在线时间
46 小时
 楼主| 发表于 2016-12-27 15:57:24 | 显示全部楼层
dtlz 发表于 2016-12-27 13:33
如果这个串口没有了,你再操作,那会报错的,只需要在软件上开启错误检测,在错误时跳至错误处理,就可以

你好,我现在是能检测到虚拟串口被拔出的,不过现在需要串口再次插上去的时候,能够再次使用,这个就不好弄了,因为拔掉之前的串口状态是Open着的,串口再插上去不管你Open()还是Close()软件都会出问题!
我描述的不太清楚,不过我不清楚你说的错误处理,应该怎么处理?释放串口资源吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-29 04:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表