- Python版本:2.6.6
- PySerial版本:2.5
- Arduino 板:Duemilanove 328
我已经编写了一些代码来模拟我正在使用的一些硬件并将其上传到 Arduino 板上。此代码有效。我知道这一点,因为我得到了超级终端的预期响应。
但是,当我尝试使用 PySerial 连接时,连接不会出错,但我发送的命令没有得到响应。
为什么会这样?
Python代码
import serial
def main():
sp = serial.Serial()
sp.port = 'COM4'
sp.baudrate = 19200
sp.parity = serial.PARITY_NONE
sp.bytesize = serial.EIGHTBITS
sp.stopbits = serial.STOPBITS_ONE
sp.timeout = 0.5
sp.xonxoff = False
sp.rtscts = False
sp.dsrdtr = False
sp.open()
sp.write("GV\r\n".encode('ascii'))
value = sp.readline()
print value
sp.write("GI\r\n".encode('ascii'))
value = sp.readline()
print value
sp.close()
if __name__ == "__main__":
main()
注意:Arduino 上的代码在对\r\n
命令的响应结束时发回。
超级终端配置:
编辑
我发现如果我将超时时间增加到 10 秒并sp.readline()
在发送任何内容之前添加一个,那么我会得到对这两个命令的响应。
PySerial 和 Arduino 或 USB RS-232 端口之间的硬件握手通常需要多长时间?