if (com != null)
{
com.Close()
}
2. 然后重新new,在打开串口:
com = new System.IO.Ports.SerialPort(strComName) //strComName串口名
com.Open()
// ...设置属性
// ...绑定串口接收函数。
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 必须是全局变量。
串口被占用解决方法:
2、点击设备管理器进入,如下图所示
3、设备管理器找到冲突的串口,如下图所示
4、右键单击串口,选择属性,如下图所示
5、属性面板点击端口选项卡,如下图所示
6、端口设置界面点击高级设置,如下图所示
7、高级设置界面,点击i串口编号后面的箭头,选择空余未运行的串口,如下图所示
8、闲置串口选定后,点击确定,如下图所示
9、出现提示,点击OK,如下图所示
10、冲突串口强行修改成功,如下图所示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)