Помогите с PySerial Странное поведение

Вот так работает

com = Serial('COM3', 115200, timeout=3)
s = input('> ').encode('utf-8')
com.write(s)
data = com.read(100)
print(data)

а если поменять на такое

com = Serial('COM3', 115200, timeout=3)
s = str('hi').encode('utf-8')
com.write(s)
data = com.read(100)
print(data)

не работает...

Ардуина получает строку hi и возвращает hi-hi. если вводить hi в input, проблем нет, но если это заменить присвоением строки, то не работает. я пробовал по разному и через b'hi' и bytes('hi', 'utf-8') и просто строкой и через str() только через input все нормально. Как починить?


Ответы (1 шт):

Автор решения: Eugene X
  1. Ты забыл символ переноса строки. "Hi\n" input по умолчанию возвращает строку с символом переноса строки.
  2. Кодировка ардуино ASCII, никак не UTF8
  3. Между операциями read/write желательно добавить небольшой delay.
→ Ссылка