从Arduino读取模拟值并将其实时显示在Tkinter GUI上

问题描述 投票:-1回答:1

我正在尝试创建Python Tkinter GUI,以通过串行通信在Arduino和PC之间进行简单的数据传输(我正在使用pySerial软件包)。我可以正确地从GUI输入数据并将数据发送到Arduino。在一个单独的代码文件中,我也可以正确读取从Arduino发送的数据,但是在将此实时数据读取功能集成到Tkinter GUI程序并将其显示在GUI上时遇到了问题。根据我的实验,要正确读取Arduino发送的数据,需要循环运行读取。 Tkinter也有自己的循环。因此,为了避免卡在数据读取循环中,我一直在尝试使用current.futures并行运行它们,但是仍然无法按我的意愿运行。请帮助!

这是我的代码:https://drive.google.com/file/d/1xHOV-qXjg2iEA-PXa52d1_66bOpdbnzv/view?usp=sharing(请理解我仍在学习Python,Tkinter和多处理。因此在约定和术语上可能会出现一些错误。)

这是GUI的外观:Arduino-PC Serial Communication GUI

python tkinter arduino python-multiprocessing pyserial
1个回答
0
投票

Tkinter窗口具有after方法,可将其作为Tkinter循环的一部分来运行您自己的代码,例如:

from tkinter import Tk

window = Tk()

def do_something():
    print("doing something!")
    window.after(1000, do_something)  # every 1000 milliseconds

# start the do_something function immediately when the window starts
window.after(0, do_something)

window.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.