PySerial [错误 5] 访问被拒绝
我正在尝试用Python写一个程序,这个程序会不断检查串口(COM4),当从串口读取到字符“1”时,就打印出一条消息。我希望在按下Arduino设备上的按钮时,通过串口发送“1”。
不过,当我尝试创建一个串口对象时,出现了一个错误:“[错误 5]: 访问被拒绝”。(在创建对象时,它会自动尝试打开串口,这就是我看到的错误来源,来自PySerial包中处理这个的文件。)
我的代码:
c = serial.Serial('COM4', 9600)
while True:
signal = c.read()
print signal
print "running"
time.sleep(2)
c.flushOutput()
不过,它总是停在“c = serial.Serial('COM4', 9600)”这一行,这里就出现了错误。我该如何解决这个问题呢?
7 个回答
2
请注意Python的版本。
这是关于pyserial手册中class serial.Serial的内容:https://pyserial.readthedocs.io/en/latest/pyserial_api.html#classes
...........
当你创建一个对象并且指定了端口时,这个端口会立即打开。如果端口是None,那么就不会自动打开,你需要后续调用open()来打开它。
端口是设备名称,具体取决于你的操作系统。例如,在GNU/Linux系统上是/dev/ttyUSB0,而在Windows上是COM3。
............
在3.0版本中,端口参数不再支持数字形式。
8
对我来说,那个解决办法没用,但我发现关闭所有与这个串口有联系的应用程序就能解决问题。
3
更新:在PySerial 3.0中,这显然已经不再可能了。
在Windows系统下,我一直用port=<int>的方法,效果很好。
也就是说,把你的代码改成:
c = serial.Serial(3, 9600)