使用TI Chronos在Python中打开端口时出错
我正在尝试从TI Chronos获取加速度计数据。当我运行代码时,出现了以下错误信息:
Traceback (most recent call last):
File "C:\Python32\chronos_accel.py", line 50, in <module>
.
.
.
raise SerialException("could not open port %s: %s" % (self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port COM4: [Error 5] Access is denied.
为什么会显示“访问被拒绝”?我可是系统管理员。这会不会是代码的问题呢?
6 个回答
4
还有一种情况也会导致 访问被拒绝 的错误:
端口的权限实际上被设置为不允许普通用户访问!一些系统管理员出于安全原因会限制端口的使用,这样只有拥有管理员权限的用户才能访问。
最简单的解决办法是以管理员身份运行 cmd.exe。可以参考这个链接了解如何在 Windows 7、8 或 10 中从运行框以管理员身份运行命令:以管理员身份运行命令
总结一下:按下 Win + R,输入 "cmd",然后按 Shift + Ctrl + Enter。
“对我来说有效!” (tm)
18
这种错误最常见的原因是某个其他应用程序已经打开了这个端口,或者是你之前运行过的代码实例(你可能忘记关闭了)还在占用这个端口。
为了验证这个猜想,最简单的方法是运行一个其他程序,它也会打开同样的端口(比如说 HyperTerminal),看看是否也会出错。如果也出错了,那就要找找是谁在占用这个端口。
另外,Portmon 是一个很有用的工具,可以帮助你调试串口相关的问题。
22
我搞明白了,其实很简单。
我只是在设备管理器窗口里把COM端口禁用了,然后再启用一次。