Я написал код для имитации некоторого оборудования, с которым я работаю, и загрузил его на плату Arduino. Этот код работает. Я знаю это, потому что получаю ожидаемый ответ от HyperTerminal.
Однако, когда я пытаюсь подключиться с помощью 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
в конце ответа на команду.
Конфигурация HyperTerminal:
Я обнаружил, что если я увеличу тайм-аут до 10 секунд и добавлю sp.readline ()
перед отправкой чего-либо, я получу ответы на оба команды.
Как долго обычно устанавливается соединение между PySerial и портами Arduino или USB RS-232?