【问题标题】:unable to connect to COM port无法连接到 COM 端口
【发布时间】:2015-03-05 01:46:44
【问题描述】:
我尝试使用 python 读取 COM 端口上的数据,而 COM 端口允许我一次只能访问一个应用程序..
示例:
如果我配置了腻子或超级终端,那么我可以在腻子/超级终端控制台上读取标签数据,但是当我尝试运行 python 代码时,它会显示错误
正如你在我附在下面的 pyserial 图像中看到的那样......它说“访问被拒绝”
稍后如果我第一次运行 python 代码,代码运行没有错误.. 但是 putty/hyperterminl 的配置不会发生.. 它在 putty/hyperterminal 中显示“无法打开 COM 端口”
http://i.stack.imgur.com/FUALN.png
【问题讨论】:
标签:
python
serial-port
pyserial
access-denied
【解决方案1】:
使用此代码从串口读取数据:
如果您想从 COM1 读取,只需将 27 替换为 0,对于 COM2 将 27 替换为 1,依此类推。如果您的 COM 端口已在使用中,则会显示“拒绝访问”,因此请尝试将您的设备重新插入 USB 并尝试或简单地使用 COM 端口关闭应用程序
from serial import *
import sys
try:
ser=Serial(27)
print("port opened")
#ser.stopbits=2
while 1:
data=ser.read()
sys.stdout.write(data.decode())
except:
ser.close()
【解决方案2】:
Before accessing this port. You need to close another application that is accessing it. And then, you can use the following source code:
#!/usr/bin/env python3
import serial
ser = serial.Serial(
port='ComPort',
baudrate = 2400,
parity=serial.PARITY_EVEN,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout=None
)
while 1:
x = ser.readline()
print(x)
【讨论】:
-
请记住,Stack Overflow 不仅仅是为了解决眼前的问题,而是为了帮助未来的读者找到类似问题的解决方案,这需要了解底层代码。这对于我们社区的初学者和不熟悉语法的成员来说尤其重要。鉴于此,您能否edit 您的答案包括对您正在做什么的解释以及为什么您认为这是最好的方法?