serial.serialutil.SerialException: Cannot configure port, something went wrong. Original message: PermissionError(13,‘连接系统上的设备没有发挥作用。’,))
1.问题介绍
该问题我是出现在利用python调用RS232串口脚本中,运行一遍程序后,每当运行第二遍的时候就会报这个错误。
具体报错如下:
2.解决方案一:设置“USB选择性暂停”为已禁用
控制面板–系统和安全–电源选项–更改计划设置–更改高级电源设置–USB设置–USB选择性暂停设置–全部改成“已禁用”。
具体步骤如下图所示:
【插图】
- STEP1
- STEP2
- STEP3
- STEP4
- STEP5
如果你打开“更改高级电源设置”发现没有“USB设置”,可以参考这篇知乎进行设置:https://zhuanlan.zhihu.com/p/667513076
(太牛了)
如果以上方案不可以的话可以试下面这种方案,我就是下面这种方案解决的。
3.解决方案二:修改“seralwin32.py”中部分代码
- 首先检查下串口是否被占用导致报错(一般不会,不过还是先检查下为妙)
import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
if len(ports) == 0:
print('No port available')
else:
for port in ports:
print(port)
如果返回下图内容,说明没有被占用。
- 修改seral库代码
那么我们根据报错定位到“seralwin32.py”的第224行,由于系统和seral库之间存在兼容问题,于是报错。我们将if这一段进行注释,改成pass,就可以解决该问题了。如下图所示:
(以上就是我的解决过程,希望可以帮到需要帮助的人!)