Увеличить размер буфера приёма для сериал порта в его библиотеке под вашу задачу. Тогда будете читать весь буфер разом, а не побайтно.
Для ради “поиграться” попробовал запустить небольшой код. В Python-e вообще не разбираюсь, это вторая в жизни попытка))
Спойлер
import serial
# Открываем Serial порт ('COMX' замените на имя вашего порта)
ser = serial.Serial('COM40', 9600)
while True:
response = ser.readline()
# Декодируем ответ из байтов в строку с использованием UTF-8
decoded_response = response.decode('utf-8')
print(decoded_response)
Arduino - код из #4
Как видим , всё норм. Никакой буфер не переполняется, надо искать косяк в своей программе ИМХО.
P.S. Пару строчек кода на Python “выковырял” отсюда:
https://amperkot.ru/blog/serial-py/?srsltid=AfmBOoqokTeFO7iUmwBsFrkIkPvhO85xo1CoLY8faITwNu-JCDSmFip4
Я тоже не знаю Питона, но мне сдается, что serial.readLine()
нужно заменить на что-нибудь вроде serial.readChar()
и проверить, что print
может работать не только со строками, но и с отдельными символами. Ну либо заменить его той функцией, которая может.