在Python/Wins7中使用串口

0 投票
3 回答
46057 浏览
提问于 2025-04-16 17:49

我正在尝试与一个串行的WWAN调制解调器进行连接,目的是为了进行诊断和信号强度测量。这个连接是通过我桌面上的COM1端口(115200-8-n-1)来实现的,使用PuTTY可以正常工作。我可以用Python编写AT命令的脚本,但在打开串口时遇到了麻烦。

我已经按照说明安装了Python 2.7.1和PySerial。我是我电脑的本地管理员,尝试过以管理员权限和非管理员权限运行Python,但每次尝试打开端口时都会出现以下错误:

Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> s = serial.Serial(
...     port='COM1',
...     baudrate=115200
... )
>>> s.open()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 56, in open
raise SerialException("could not open port %s: %s" % (self.portstr, ctypes.W
inError()))
serial.serialutil.SerialException: could not open port COM1: [Error 5] Access is
 denied.

我了解到8-N-1是默认设置,即使我尝试手动设置,也会抛出相同的异常。

有没有人能给点建议?谢谢大家。

3 个回答

0

你需要以管理员身份运行 python.exe。右键点击它,然后选择 以管理员身份运行

4

这是我用来解决访问被拒绝错误的方法:

  1. 按下 Ctrl + Alt + Del

  2. 找到 pythonw.exe,然后点击 结束进程

  3. 在 IDLE 中重新运行你的应用程序

这样应该就不会再出现访问被拒绝的错误了。

6

你不需要自己去调用 open。因为在创建对象的时候,构造函数已经帮你打开了。而在Windows系统上,谁打开了一个COM端口,谁就独占这个端口,直到他们关闭它。

至于第二个问题,可以看看这个链接:如何解决“[错误 6] 句柄无效。”的问题,使用PySerial

撰写回答