Python:While循环运行一次并等待。。我想让它循环,但它没有

2024-10-04 09:19:19 发布

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

我是python编码的新手,我使用Raspberry Pi作为学习方法。我试着不断地轮询我的板上的输入并将它们打印到屏幕上,但是代码只打印了一次输入状态,似乎在等待什么,而我似乎无法理解。。。任何帮助都将不胜感激。在

# piFace_Control.py

import piface.pfio as pfio
import serial
import time
import struct

def h(val):
    return struct.pack('!H', val)

def i(val):
    return struct.pack('I', val)

serialA = serial.Serial("/dev/ttyUSB0",9600)
serialA.open()
serialA.flush()

pfio.init()

time.sleep(1)

val2 = 1
run = 1

while (run):
      try:
        val = serialA.readline()
        print(val)
        serialA.write(h(0xFE))
        serialA.write(' Got it!')

        if val2 == 0:
            val2 = 1
        else:
            val2 = 0 

        print(i(val2))
        serialA.write(i(val2))
        pfio.digital_write(0,val2)
        print "D0: "+str(pfio.digital_read(0))
        print "D1: "+str(pfio.digital_read(1))
        print "D2: "+str(pfio.digital_read(2))
        print "D3: "+str(pfio.digital_read(3))
        print "D4: "+str(pfio.digital_read(4))
        print "D5: "+str(pfio.digital_read(5))
        print "D6: "+str(pfio.digital_read(6))
        print "D7: "+str(pfio.digital_read(7))

      except (keyboardInterrupt, SystemExit):
        print '\nKeyboard Interrupt Caught...'
        run = 0
        pass

serialA.close()

Tags: runimportreadtimedefserialvalstruct
1条回答
网友
1楼 · 发布于 2024-10-04 09:19:19

当你击中:

val = serialA.readline()

在第二个循环中,它从不从串行接收完整的行,直到它收到为止。在

在串行连接另一端的任何东西都只发送一条线。在

相关问题 更多 >