После сброса STM32 я получаю ошибку последовательного соединения на Python. Как я могу справиться с этим в PythonPython

Программы на Python
Ответить
Anonymous
 После сброса STM32 я получаю ошибку последовательного соединения на Python. Как я могу справиться с этим в Python

Сообщение Anonymous »

У меня возникла проблема с серийным номером Python после перехода от приложения к загрузчику на моем STM. На моей стороне Python в Windows я закрываю серийный номер и открываю его снова. также я сбрасываю входной и выходной буфер, прежде чем начать чтение из последовательного порта. STM32 уже снова запустился и его последовательное соединение открыто. Когда я просто закрываю и снова запускаю скрипт Python, проблем нет.

Код: Выделить всё

class serialHandler:
delay = False
ser= serial.Serial()
ser.port = system.configComPort.COMPORT
ser.baudrate = system.configComPort.BAUDRATE
ser.parity = system.configComPort.PARITY
ser.open()
def __new__(cls):
if not hasattr(cls, 'instance'):
cls.instance = super(serialHandler, cls).__new__(cls)
return cls.instance
def isDelay(self):
return self.delay
def setDelay(self):
self.delay = True
def resetDelay(self):
self.delay = False
def reopenSer(self):
self.ser.reset_input_buffer()
self.ser.reset_output_buffer()
self.ser.close()
print("serial close")
sleep(2.5)
print("serial open")
self.ser= serial.Serial()
self.ser.port = system.configComPort.COMPORT
self.ser.baudrate = system.configComPort.BAUDRATE
self.ser.parity = system.configComPort.PARITY
self.ser.open()
self.ser.reset_input_buffer()
self.ser.reset_output_buffer()
def readUnil(self):
dataFrame = self.ser.read_until(expected = END_OF_USB_MSG.encode())
return dataFrame
def write(self, data):
self.ser.write(data)
def isOpen(self):
При выполнении readUnil() возникает ошибка.
Произошло исключение: SerialException
Ошибка ClearCommError (PermissionError(13, ' Das Gerät erkennt den Befehl nicht.', None, 22))
Файл "D:\projects\efas\code\command\serial_usb.py", строка 195, в readUnil
dataFrame = self.ser.read_until(expected = END_OF_USB_MSG.encode())
Файл "D:\projects\efas\code\command\serial_usb.py", строка 224, в run_readline_serialdata_frame = serHandler.readUnil()
serial.serialutil.SerialException: Ошибка ClearCommError (PermissionError(13, 'Das Gerät erkennt den Befehl nicht.', None, 22))
Думаю, после перезагрузки STM32, в Windows используется старый порт, которого больше нет. есть ли способ полностью забыть старое соединение на стороне Python и восстановить его.

Подробнее здесь: https://stackoverflow.com/questions/792 ... can-i-hand
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»