#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, чтобы включить некоторые подключенные мной выходы. Отправка программ также будет подтверждена. Спасибо.