Python и STM32 -- ошибка COM порта
Всем привет. Хочу наладить связь между десктопом и stm32, однако есть некоторые проблемы. Создаю объект port и выскакивает ошибка
SerialException: Cannot configure port, something went wrong. Original message: OSError(22, 'Параметр задан неверно.', None, 87)
Код создания port
import serial
port = serial.Serial()
port.port = "COM16"
port.baudrate = 115200
port.open()
Ошибка выскакивает port.open()->self._reconfigure_port(). Платформа windows 10. Параметры выставил из диспетчера устройств. При этом у меня получается общаться с STM32 через Tera Term и/или PuTTY
Вот полный скрин ошибки, если кому надо:
Буду рад любой помощи! Спасибо!
Ответы (1 шт):
UPD 1: Зашел я в исходный код Pyserial. В файле serialwin32.py в классе Serial есть функция open(). Эта функция вызывает другую функцию self._reconfigure_port(). Если пролистать последнюю функцию до конца, то можно увидеть строчки
if not win32.SetCommState(self._port_handle, ctypes.byref(comDCB)):
raise SerialException(
'Cannot configure port, something went wrong. '
'Original message: {!r}'.format(ctypes.WinError()))
Почитав обсуждение на одной ветке github https://github.com/pyserial/pyserial/issues/258, я попробовал закомментировать строчки, которые вызывают саму ошибку, а именно
if not win32.SetCommState(self._port_handle, ctypes.byref(comDCB)):
#raise SerialException(
#'Cannot configure port, something went wrong. '
#'Original message: {!r}'.format(ctypes.WinError()))
pass
После этого мой порт открылся успешно и я смог отправить команду на свой МК (Визуально загораются светодиоды). Причину этой ошибки можно прочитать в обсуждении (ссылку на github прикрепил выше). Пока работает и никаких других ошибок не выбивает. Если что-то всплывет, то я отпишу.