当我运行这个程序时(它应该每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)
您正在更改函数中的局部变量。要更改全局变量,需要使用
global
关键字,例如:相关问题 更多 >
编程相关推荐