
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串口资源,然后读写串口使用这个打开的串口资源直接发送接受,不要重复打开串口,关闭串口。在程序启动时,可以用顺序结构先把串口关闭然后再打开;
程序退出时,释放串口资源。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)