Входящие последовательные данные не печатаются на консоли с использованием pyserial

#python #pyserial

#python #pyserial

Вопрос:

Я создаю графический Tkinter интерфейс и хочу получать входящие данные от Serial (с микроконтроллера).

Кроме того, я хочу распечатать это в text-editor виджете Tkinter (аналогично консоли serial monitor).

Для этого я сейчас пытаюсь написать код приема на Python без Tkinter, но я не могу получить какие-либо данные в консоли.

Код выглядит следующим образом:

 import serial
import time
import threading

global serial_open
serial_open = False

def serial_read():
    global ser
    global var

    while True:
        if serial_open == True:
            var = ser.readline()
            if var != "":
                print(var)
        else:
            pass
        
        

ser = serial.Serial('COM3', baudrate = 19200)
time.sleep(3)
serial_open = True
print("COM3 Connected")
threading.Thread(target = serial_read).start()
time.sleep(10)
ser.close()

print("Disconnected")
  

Комментарии:

1. Просто небольшой совет serial_open = False автоматически становится serial_open глобальным… Итак, global serial_open не требуется.

2. Вы пробовали изменять скорость передачи данных в бодах? С каким микропроцессором вы разговариваете? Atmega? Когда дело доходит до аппаратного обеспечения, существует целый список вещей, которые могут пойти не так… Вы абсолютно уверены, что на самом деле получаете данные от микропроцессора? Вы проверили это с помощью стороннего программного обеспечения?

3. На самом деле я использую FPGA, и данные отправляются через последовательный интерфейс. да, я проверил входящие данные с помощью стороннего программного обеспечения, такого как «Hterm», и данные получены отлично, также после этого мне нужно отправить данные в fpga, чтобы включить некоторые подключенные мной выходы. Отправка программ также будет подтверждена. Спасибо.