Python自动重复串行d

2024-09-30 01:20:24 发布

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

你好,我有下面的代码发送一个字符到串口取决于一个检查按钮在tkinter的状态。这工作得很好,但我要求字符通过串行端口(每10秒左右)发送,而不管check按钮的状态是否已更改。我尝试添加一个while循环,但这会导致程序崩溃。任何帮助都是巨大的。你知道吗

(这是一个较大代码的一小部分,因为它的工作原理如上所述)

def setCheckButtonText():
    if varCheckButton.get():
         ser.write(bytes('L'))
    else:
         ser.write(bytes('H'))       

def setCheckButtonText2():
    if varCheckButton2.get():
        ser.write(bytes('F'))
    else:
       ser.write(bytes('O'))

def setCheckButtonText3():
    if varCheckButton3.get():
        ser.write(bytes('N'))
    else:
        ser.write(bytes('Y'))


ser = serial.Serial('/dev/ttyUSB0', 9600)

varCheckButton = tk.IntVar()
tkCheckButton = tk.Checkbutton(
    mGui,
    variable=varCheckButton,
    command=setCheckButtonText)
tkCheckButton.place(x=60, y=50)

varCheckButton2 = tk.IntVar()
tkCheckButton = tk.Checkbutton(
    mGui,
    variable=varCheckButton2,
    command=setCheckButtonText2)
tkCheckButton.place(x=60, y=90)

varCheckButton3 = tk.IntVar()
tkCheckButton = tk.Checkbutton(
    mGui,
    variable=varCheckButton3,
    command=setCheckButtonText3)
tkCheckButton.place(x=60, y=130)

Tags: getifbytesdefelsetkserwrite
1条回答
网友
1楼 · 发布于 2024-09-30 01:20:24

您可能需要发送和设置变量。你知道吗

在您的方法中,您可以只为字符设置适当的变量,而不是直接发送它们。 在另一种方法中,可以使用这些字符将它们发送到串行端口。可以使用after在延迟后调用方法。你知道吗

def send():
    #Send variables here
    mGui.after(10000, send)

mGui.after(10000, send)

相关问题 更多 >

    热门问题