有关VB程序中释放串口资源的问题

有关VB程序中释放串口资源的问题,第1张

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False

End Sub

在快速关闭过程中关闭串口就可以了。

要么就是在打开串口的地方判断如果出错就直接关闭串口再打开。

莫非你程序中用了 DoEvents ?

如果这样,你试试在快速结束过程里面加Unload Me吧。

修改1:

不建议用DoEvents,建议改用定时器来实现延时。

详情请看另一贴的回复。

要么在快速结束里面添加一行receive = 1,但receive 必须是全局变量。

1. 先判断在关闭原先串口 com:

if (com != null)

{

com.Close()

}

2. 然后重新new,在打开串口:

com = new System.IO.Ports.SerialPort(strComName) //strComName串口名

com.Open()

// ...设置属性

// ...绑定串口接收函数。

程序中,打开串口后使用移位寄存器来缓存VISA串口资源,然后读写串口使用这个打开的串口资源直接发送接受,不要重复打开串口,关闭串口。

在程序启动时,可以用顺序结构先把串口关闭然后再打开;

程序退出时,释放串口资源。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8043367.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存