使用TI Chronos在Python中打开端口时出错

7 投票
6 回答
81527 浏览
提问于 2025-04-16 18:13

我正在尝试从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端口禁用了,然后再启用一次。

撰写回答