C# 如何释放串口

C# 如何释放串口,第1张

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

if (com != null)

{

com.Close()

}

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

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

com.Open()

// ...设置属性

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

1、首先打开<我的电脑>,在空白处点击鼠标右键,打开<属性>。

2、进入<系统>界面后,选择打开左上方的<设备管理器>。

3、此时可以看到<设备管理器>的菜单中的<端口(COM和LPT)>,打开下拉菜单,选中要更改的<USB Serial Port>选项,单击鼠标右键打开属性对话框。

4、在打开的属性对话框中,选择<端口设置>,单击打开下面的<高级>选项。

5、进入到<高级设置>对话框中后,打开COM端口号的下拉菜单,将COM端口号换成com2,这样就增加了一个COM端口。如果想增加多个COM端口,只要重复上述过程即可。

6、如果要删除,首先”在运行中输入regedit按确定 打开注册表“,也可以按”win+R“调出运行。

7、打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter,删除”COM Name Arbite“文件夹。

8、然后再到设备管理器中查看端口使用情况,就会发现已经清空删除了。

今天就遇到这个问题了串口调试的时候发现usb转串口使用的是COM8而串口调试助手里面只有COM1到4,我想去该COM口发现COM1到7都在使用中,找了好多办法都不行,后面在网上找到这篇解决办法的文章,就转载过来了,没有标明转载的地址有点不好啊,嘿嘿。

彻底解决COM端口被占用(在使用中)问题的办法

1. 如何释放被占用的COM口?

由于反复试装不同版本的蓝牙驱动,造成COM5~COM15都处在被占用状态,最后成功安装驱动后只能使用COM16了,同步软件还不认,哪位高手能解释一下?谢谢啦!

2. 在使用USB转串口的设备,因为以前的设备有问题,换了新的设备之后发现,以前使用过的COM口现在都显示使用中,设备新分配的COM口数是从以前开始往下数的,例如:以前试到了COM7,在换了新设备后出来的就直接是COM8了,COM2-COM7都显示使用中(COM1是机器保留的)

3. 如何删除电脑中使用过的COM端口?

我的电脑经常使用蓝牙、手机数据线之类的东西,每次装一个新的设备,windows就自动分配一个新的虚拟com口,现在插上新的设备都用到COM25了,查看设备管理器-端口-com25属性-端口设置-高级-com端口号,发现从3~24全是“使用中”,怎么能把前面的这些删除掉?

以上问题的彻底解决办法:

打开注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/COM Name Arbiter

把ComDB删除后重新尝试即可!(注:这样会重建所有COM口)。如果还不行,重启电脑!

乱注:以上方法解决了我的问题……

另外还可以看看集成的Modem是否占用了你的这个串口。

打开“控件面板”中的“电话/调制解调器选项”,

在“调制解调器”选项卡中是否有一个连接占用着这个串口(如COM1)

解决方法:

如果有连接占用这个串口,直接删除这个连接,重新启动电脑,问题解决。

或者看看详细原因:

1、用安全模式启动,用系统自带的通讯中的“超级终端”测试串口(COM1),

这时同样报错,不过错误信息更详细了,如下:

******错误信息********

Windows 汇报了一个TAPI错误(80000048)。

请用“控件面板”中的“电话/调制解调器选项”

图标来确认调制解调器安装得是否正确。

**********************

2、然后把电脑正常启动了。

打开“控件面板”中的“电话/调制解调器选项”,

发现在“调制解调器”选项卡中有一个连接占用着这个串口(COM1),

于是马上删除这个连接。

再用“超级终端”测试串口(COM1),不报错了,

表示与串口(COM1)通讯正常。

3、把串口设备连接到串口(COM1)上,用相关软件与设备通讯,正常,问题解决。

关于使用蓝牙设备时COM口被占用问题

由於windows莫名其妙的registry原因,很多用户发现,在安装蓝牙管理软件之後,对应的蓝牙虚拟端口居然变成COM9,甚至是COM13或更高,导致与许多应用程序,如手机同步软件,PDA同步软件无法使用 ,多次重新安装蓝牙管理软件只会让状况更恶化..

解决方案如下(执行下列步骤之前,请务必卸载蓝牙管理程序,并重新开机)

1.在Windows系统,按开始>执行>输入cmd,按回车

2.出现命令字符视窗之後,输入

set DEVMGR_SHOW_NONPRESENT_DEVICES=1

按回车

devmgmt.msc

按回车

3.然后在设备管理器点击>查看>显示隐藏的设备

您现在能能删除多余的端口了,删除完毕之後,请务必重新开机

4.重新安装蓝牙管理软件

5.如果您想永久性投入这个环境变量到XP, 到我的电脑>点选之後,按鼠标右键>属性>高级>环境变量

在系统变量里面,按"新建",在"变量名"里面填入" DEVMGR_SHOW_NONPRESENT_DEVICES" ,变量值填入"1"


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

原文地址: http://outofmemory.cn/yw/8168585.html

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

发表评论

登录后才能评论

评论列表(0条)

保存