变量在d中不变

2024-09-28 01:33:36 发布

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

当我运行这个程序时(它应该每3秒打开和关闭一次输出),但是“enable”值保持为0,在def be()运行期间不会变为1。如果你只是尝试这个程序,你会看到它只写上“on”。 请帮忙,因为我是python的初学者。你知道吗

import threading
import os
import smbus
from threading import Timer
from time import sleep

bus = smbus.SMBus(1) # Rev 2 Pi uses 1

DEVICE = 0x20 # Device address (A0-A2)
IODIRA = 0x00 # Pin direction register
OLATA  = 0x14 # Register for outputs
GPIOA  = 0x12 # Register for inputs

bus.write_byte_data(DEVICE,OLATA,0)
enable = 0
beki = 1
be = 0
ki=0

def be():
     print "on"
     bus.write_byte_data(DEVICE,OLATA,1)
     sleep(0.2)
     enable=1
def ki():
     print "off"
     bus.write_byte_data(DEVICE,OLATA,0)
     sleep(0.1)
     enable=0

while True:

  if(enable==0):
     on = threading.Timer(3, be)
     on.start()
  if(enable==1):
     off = threading.Timer(3, ki)
     off.start()
  sleep(0.01)

Tags: importdataonenabledevicedefsleepbe

热门问题