当前位置: 首页 > 知识库问答 >
问题:

Python 3。串行读取

荆哲
2023-03-14

我无法通过串行连接读取来自arduino的串行数据。为了解决串行和gui需要同时运行的问题,我使用了。函数后,每100ms调用一次更新序列。然而,当我运行这段代码时,没有弹出窗口,并且我得到一个错误,说我已经超过了最大递归深度。这是我的密码:

'''
Created on Nov 23, 2014

@author: Charlie
'''

if __name__ == '__main__':
    pass

import serial
from tkinter import *

ser = serial.Serial('COM8')
ser.baudrate = 9600

def update():
    c = StringVar()
    c=ser.readline()
    theta.set(c)
    root.after(100,update())

root=Tk()
theta = StringVar()

w = Label(root, textvariable = theta)
w.pack()

root.after(100,update())    
root.mainloop()

共有2个答案

贺跃
2023-03-14

在funcdate()中删除循环root.after(100, date())。这个:

def update():
    c = StringVar()
    c=ser.readline()
    theta.set(c)
锺英卫
2023-03-14

您应该使用root。之后(100,更新)。注意update之后缺少括号。使用括号将update的结果发送到after调用,但要计算结果,必须运行update,其中包含另一个对after的调用,该调用需要update的结果,依此类推。。

也看到这个问题。

另外,为什么每次调用update函数时都要创建一个新的StringVar
c=ser。readline()无论如何都会覆盖c,因此您最好删除该行。

 类似资料:
  • 问题内容: 给定一个不太长的字符串,逐行读取字符串的最佳方法是什么? 我知道你可以做: 另一种方法是在eol上获取子字符串: 还有其他更简单的方法吗?我对上述方法没有任何问题,只是想知道你们中是否有人知道一些看起来更简单,更有效的方法? 问题答案: 您也可以使用String方法: 这使您可以方便地将所有行排列在一起。 我不知道拆分的性能。它使用正则表达式。

  • 我是python和tkinter的新手。。。我使用Tkinter显示仪表并通过串行com接收信息。我已经准备好GUI,现在需要读取序列值。 我面临的问题是我不能连续读取串行COM。我遇到了,但它仍然不起作用。基本上它不会在控制台上显示任何值。知道可能出了什么问题吗? 这是主要代码。我还有一个文件meter.py

  • 我试图在一些python代码和arduino代码之间来回“乒乓”信息。我想定期向arduino代码发送两个设定点(例如,在分钟内),在arduino上读取它们 现在,我无法获得可靠的信息来来回跳转。我在搜索中没有找到任何与此类似的内容,我试图修改的所有内容都不起作用。最接近我的是这个(实际上它并没有在发送和接收之间来回切换): python 阿杜伊诺: 我最终得到的只是重复的相同值(不是实际发送的

  • 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如:var1 = 'Hello World!' var2 = "Runoob" Python 访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。 Python 访问子字符串,可以使用方括号来截取字符串,如下实例: 实例

  • 问题内容: 我正在尝试在某些python代码和arduino代码之间来回“乒乓”信息。我想定期向arduino代码发送两个设定值(例如在分钟上),在arduino上读取它们并更新变量,然后定期(例如在30秒内)将状态信息从arduino发送回python。最终,python将从mySQL数据库发送信息并从中提取信息(后来的开发)。 现在,我无法获得可靠往返的信息。我没有在搜索中找到与此相近的任何内

  • 本文向大家介绍python3读取csv文件任意行列代码实例,包括了python3读取csv文件任意行列代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了python3读取csv文件任意行列代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 读取每一行 reader = csv.reader(f) 此时reader返回的值是c