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

2024-04-24 22:41:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个Python Tkinter GUI,用于Arduino和PC之间通过串行通信进行简单的数据传输(我使用的是pySerial包)。我可以正确地从GUI向Arduino输入和发送数据。在一个单独的代码文件中,我也可以正确读取从Arduino发送的数据,但我在将此实时数据读取功能集成到Tkinter GUI程序并在GUI上显示时遇到问题。根据我的实验,要正确读取从Arduino发送的数据,需要在循环中运行读取。Tkinter也有自己的循环。因此,为了避免陷入数据读取循环,我一直在尝试使用concurrent.futures并行运行它们,但它仍然不能像我所希望的那样工作。请帮忙

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

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


Tags: 文件数据代码https程序功能tkintergui
1条回答
网友
1楼 · 发布于 2024-04-24 22:41:21

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()

相关问题 更多 >