У меня есть скрипт Python, который записывает пакеты данных на плату Arduino через pySerial .
Иногда при записи кода на плату pySerial вызывает ошибку ввода / вывода с ошибкой 5.
В некоторых исследованиях говорится, что это указывает на ошибку при записи в файл, представляющий соединение с платой Arduino.
Код, который отправляет, отправляет только однобайтовые пакеты:
try:
# Check if it's already a single byte
if isinstance(byte, str):
if len(byte) == 1: # It is. Send it.
self.serial.write(byte)
else: # It's not
raise PacketException
# Check if it's an integer
elif isinstance(byte, int):
self.serial.write(chr(byte)) # It is; convert it to a byte and send it
else: raise PacketException # I don't know what this is.
except Exception as ex:
print("Exception is: " + ex.__getitem__() + " " + ex.__str__())
Ошибка, напечатанная этим кодом:
Ошибка ОС Ошибка ввода-вывода Errno 5
Что-то не так в моем коде при отправке? Нужно ли проверять, готов ли последовательный порт для отправки чего-либо или должна быть задержка после отправки?
Или может быть проблема с аппаратным обеспечением или соединением с аппаратным обеспечением?
Редактировать : Я изучил реализацию Linux из pyserial, и реализация только передает ошибку в мой код. Так что никаких новых реальных идей оттуда нет.
Есть ли хороший способ проверить, что происходит в программе?