我有一个numato 128 gpio板,当我在终端中键入命令但我的python程序无法获得相同的结果时,它可以正常工作。当我写命令从IO板上读取并等待1秒钟,然后读取缓冲区中的内容时,我最终会回读刚发送的命令,而不是设备的响应。如果我读完缓冲区中的所有内容,它将最终返回响应。这是在树莓派上。这是我的代码。
import serial
import time
class UsbSerial:
def __init__(self, serial_conf):
self.ser = serial.Serial(serial_conf['port'], serial_conf['baud'])
def readGPIO(self, pin):
self.ser.write("gpio read " + ("000" + str(pin))[-3:] + "r")
time.sleep(1)
return self.ser.readline()
ser_conf = {"port": "/dev/ttyACM0", "baud": 19200}
serGPIO=UsbSerial(ser_conf)
print serGPIO.readGPIO(20)
好吧,这并不漂亮,但这是经过修改的readGPIO子模块,似乎可以完成工作。我仍将感谢您提供有关如何使其变得更好的信息。
def readGPIO(self, pin):
self.ser.flush()
self.ser.write("gpio read " + ("000" + str(pin))[-3:] + "r")
time.sleep(.1)
x=self.ser.readline()
x=self.ser.read(1)
x=self.ser.read(1)
y=self.ser.read(1)
#time.sleep(.1)
self.ser.flush()
return x