串口被占用

mizuho_2006 2012-07-05 10:03:41
退出程序时已经将串口关闭,再打开程序时串口不会被占用。
但是重启计算机时如果不关闭设备,再开机打开程序时,有时会提示串口被占用。使用超级终端和程序都无法读取串口的数据。必须到现场关闭设备,再重启计算机然后再打开设备才能正常读取串口数据。

请问有没有办法可以远程进行这些操作? 比如使用命令强制关闭某个指定的串口?
...全文
1334 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
a3622041 2014-10-13
  • 打赏
  • 举报
回复
引用 12 楼 mizuho_2006 的回复:
重启计算机后,windows事件管理器中出现事件45,名为serial 内容如下 串行驱动程序在设备 \Device\Serial0 上检测到一个硬件故障,将停用这个设备。 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
我也遇到了这个问题,能否请教一下,您是如何解决的,十分感谢
点Net 2013-08-23
  • 打赏
  • 举报
回复
我想问下这个问题解决没有,怎么解决的谢谢
Saleayas 2012-07-10
  • 打赏
  • 举报
回复
你的串口连接的设备有问题!
mizuho_2006 2012-07-10
  • 打赏
  • 举报
回复
重启计算机后,windows事件管理器中出现事件45,名为serial

内容如下

串行驱动程序在设备 \Device\Serial0 上检测到一个硬件故障,将停用这个设备。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
红三天 2012-07-06
  • 打赏
  • 举报
回复
思路:
1.如你所描述,程序在计算机不重启的情况下,可以正常实现所有功能,我以为,程序本身无问题;

2.问题是发生在计算机重启以后的,那说明你的计算机在重启后,有某个软件已经开启了该串口,你得仔细的查看你的计算机,是否存在这样的软件,并且它是否伴随着计算机启动而自动运行;

mizuho_2006 2012-07-06
  • 打赏
  • 举报
回复
可是不重启计算机的话,重启程序都没有出现过串口被占用的情况呀。
足球中国 2012-07-06
  • 打赏
  • 举报
回复
没有这样的命令。代码写的有问题。
mizuho_2006 2012-07-06
  • 打赏
  • 举报
回复
不止一台机器出现过这种情况了。当然也和设备的型号有关系,有的型号就没有出现过这种问题。
不是串口转USB,是直接通过串口连接电脑的。

请问有释放串口的命令吗,在命令行下?
红三天 2012-07-06
  • 打赏
  • 举报
回复
建议:
1.将你的程序COPY至任意一台机器,如果故障依旧,则可确定为设备引起的;
2.更换通信的串口,如更换成com2,如果故障依旧,则可确定为设备引起的;

如果你的串口是用usb转化的,则还得考虑驱动是否成功加载,供电是否充足等因素!
mizuho_2006 2012-07-06
  • 打赏
  • 举报
回复
我检查过附件启动和msconfig启动项,没有占用串口的程序。我怀疑还是设备本身的问题。
因为只要先重启电脑,再打开设备,串口打开时就不会被占用。
mizuho_2006 2012-07-05
  • 打赏
  • 举报
回复
我用代码试过,不管用。

主要想问下有没有什么命令行的命令可以释放串口资源。


因为现场比较远,如果再远程重启计算机的话就必须跑到现场重启设备才能正常读取串口数据,所以想远程解决这个问题。
tjinzhou 2012-07-05
  • 打赏
  • 举报
回复
先读取串口1的状态,如果是开启的,就先关闭——我记得c#的串口类是可以这么做的
mizuho_2006 2012-07-05
  • 打赏
  • 举报
回复
错误提示: access to the port 'COM1' is denied。

如何通过windows命令关闭COM1口?
mizuho_2006 2012-07-05
  • 打赏
  • 举报
回复
自己顶一下

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧