Как изменить код с чтением данных с отладочной платы под свои задачи?
Есть код, который получает данные с платы (плата отправляет числа 10 раз с интервалом в 1 секунду). Как написать функцию, которая бы выжидала полное получение данных с платы (т.е. все 10 тиков счетчика) и затем записывала их все в массив данных? Плата STM32F407Discovery, код для платы был скомпилирован в STM32CubeIDE
import serial
def open_ser():
port = 'com4' # Серийный номер
baudrate = 115200 # Скорость передачи
try:
global ser
ser = serial.Serial(port,baudrate,timeout=0.5)
if(ser.isOpen()==True):
print("Последовательный порт успешно открыт")
except Exception as exc:
print("Последовательный порт открыт ненормально",exc)
def read_msg():
try:
print("Ожидание получения данных")
while True:
data = ser.readline(ser.in_waiting).decode('ASCII')
if data != '':
break
print("Данные получены:",data)
except Exception as exc:
print("Прочитать исключение",exc)
def close_ser():
try:
ser.close()
if ser.isOpen():
print("Последовательный порт не закрыт")
else:
print("Последовательный порт закрыт")
except Exception as exc:
print("Последовательный порт ненормально закрыт", exc)
open_ser()
read_msg()
close_ser()
Источник: Stack Overflow на русском