C# 如何释放串口

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

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

if (com != null)

{

com.Close()

}

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

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

com.Open()

// ...设置属性

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

今天就遇到这个问题了串口调试的时候发现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"

解决方法如下:

1、打开注册表中的 “HKEY_LOCAL_MACHINE\hardware\DeviceMap\SerialComm”,这时发现有以下两个键: 其中应该就是USB串口,应为在设备管理器中显示串口号就是COM2。

2、新建两个健: \Device\Serial0 值为 COM1 \Device\Serial1 值为 COM2 建好后如下图所示:

3、打开串口调试软件发现能找到串口了,在软件中选择好正确的串口后,软件就可以用了!

4、有的USB串口安装好驱动程序后,串口后并不是COM1或COM2,串口号的数值会比较大,会出现COM4、COM5等更大的串口号,为了出现更大的串口号时也能使用串口,我用同样的方法建立了8个注册表键

注意:虽然在设备管理器中可以任意改动USB串口的串口号,但是改动后刚才新建的8个键就会有重复,在串口软件中显示的串口号也有重复,导致选择重复的串口号时软件提示串口被占用。因此在使用过程中,如非必要强烈建议不要改动串口号。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存