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 шт):

Автор решения: jkban4e

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 прикрепил выше). Пока работает и никаких других ошибок не выбивает. Если что-то всплывет, то я отпишу.

→ Ссылка