PySerial не взаимодействует с Arduino

  • Версия Python: 2.6.6
  • Версия PySerial : 2.5
  • Плата Arduino: Duemilanove 328
  • Я написал код для имитации некоторого оборудования, с которым я работаю, и загрузил его на плату 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:

    COM4 configuration in HyperTerminal

    Edit

    Я обнаружил, что если я увеличу тайм-аут до 10 секунд и добавлю sp.readline () перед отправкой чего-либо, я получу ответы на оба команды.

    Как долго обычно устанавливается соединение между PySerial и портами Arduino или USB RS-232?

8
задан Peter Mortensen 18 November 2011 в 19:25
поделиться