【发布时间】:2021-04-17 23:55:40
【问题描述】:
我正在尝试开发一个基于 python tkinter 的应用程序,该应用程序将从我的 arduino 传感器平台读取数据。
我收到不一致的错误,我无法理解为什么会发生这种情况。
首先,这是要怪的代码:
def readSerial():
print("1")
global after_id
print("2")
ser_bytes = ser.readline()
print("3")
ser_bytes = ser_bytes.decode("utf-8")
print("4")
text.insert("end", ser_bytes)
print("5")
after_id = root.after(50, readSerial)
- 有时这有效。数据出现在我的 tkinter 框架上,因为字符 1、2、3、4、5 在终端中不断向下滚动。这是最罕见的情况。
-
其他时候终端打印持续下降,但我的 tkinter 文本框架上没有出现任何内容。当我再次按下读取按钮时,终端中的数字停止打印,但序列中的文本出现在我的 tkinter 框架上。这怎么可能我无法理解。
-
有时终端打印持续下降,但我的 tkinter 文本框架上没有出现任何内容。如果我再次按下“开始阅读”按钮,程序将卡住,按钮将保持灰色,终端中的打印将停止。
- 其他时候我会因为某种原因冻结。让程序冻结,或停止按钮使其冻结。
我不仅不明白为什么除了 (1) 之外的行为 - 正常情况会发生,我不明白为什么会触发什么行为没有一致性。行为 2、3 或 4 何时会发生,为什么?是什么触发了每个特定行为?
有人能理解发生了什么吗?
【问题讨论】:
标签: python-3.x serial-port pyserial