当前位置: 代码迷 >> VB Dotnet >> 关于COM口打开关闭的有关问题
  详细解决方案

关于COM口打开关闭的有关问题

热度:42   发布时间:2016-04-25 02:06:27.0
关于COM口打开关闭的问题
现在在研究vb.net 和单片机com 通讯的程序,单片机上电时,显示串口是COM3,加上电脑默认的一个COM1,共2个com,保存在ComboBox1。

打开端口
SerialPort1.PortName = ComboBox1.Text  ‘选择COM3
SerialPort1.Open()

正常关闭com3   
SerialPort1.Close()  

然后关闭单片机电源,刷新ComboBox1,
        Dim ports As String() = SerialPort.GetPortNames()
        ComboBox1.Items.Clear()
        Dim port As String
        For Each port In ports
            ComboBox1.Items.Add(port)
        Next port
可以看到COM1, COM3不见了,结果正常。


打开com3口后,直接关闭单片机的电源,然后点击关闭COM3口  SerialPort1.Close()  
刷新ComboBox1,始终有2个端口COM1  COM3  ,在注册表里也是显示2个,应该只有COM1才对。

关闭整个程序后,COM3端口才释放,在注册表只有COM1,

我想问,在下位机突然断电,上位机的程序怎么才可以彻底关闭COM3,就是  SerialPort.GetPortNames()  里能反映真实端口情况?



------解决思路----------------------
你这是虚拟的串口吧,usb的?用mscomm32试试
------解决思路----------------------
这个会有些滞后,有的时候重启程序就可以,有的时候要重启电脑,
我觉得你不用SerialPort.GetPortNames。直接列出10个串口名或自定义输入串口名,然后有就能打开,没有就无法打开。
  相关解决方案