這是我第一次在這個論壇上提問。如果在發佈此問題時出現錯誤,請提及。該程序不停止在Python中的函數(while true loop)
我正在通過使用Python做菜單功能。在代碼中,我使用def來分類鍵盤和顯示內容等功能。以下是代碼:
#import
import RPi.GPIO as GPIO
import time
def main():
# Initialise display
lcd_init()
definition()
while True:
lcd_string("Press any key to",LCD_LINE_1)
lcd_string("continue",LCD_LINE_2)
keypad_init()
key_pad()
time.sleep(0.5)
menu_page()
key_pad1()
time.sleep(0.5)
def keypad_init():
for j in range(4):
GPIO.setup(col[j],GPIO.OUT)
GPIO.output(col[j],1)
for i in range(4):
GPIO.setup(row[i], GPIO.IN, pull_up_down = GPIO.PUD_UP)
def definition():
global row
row=[2,3,4,17]
global col
col=[27,22,10,9]
global MATRIX
MATRIX=[[1,2,3,'A'],
[4,5,6,'B'],
[7,8,9,'C'],
['Yes',0,'No','D']]
def key_pad():
# Keypad Function
while True:
for j in range(4):
GPIO.output(col[j],0)
for i in range(4):
if GPIO.input(row[i])==0:
return
while(GPIO.input(row[i])==0):
pass
GPIO.output(col[j],1)
def key_pad1():
# Keypad Function
global pagecount
while True:
for j in range(4):
GPIO.output(col[j],0)
for i in range(4):
if GPIO.input(row[i])==0:
pagecount = MATRIX[i][j]
return
while(GPIO.input(row[i])==0):
pass
GPIO.output(col[j],1)
def menu_page():
lcd_string("1.Diagnose",LCD_LINE_1)
lcd_string("2.BMI Calculator",LCD_LINE_2)
def option_choose():
if pagecount ==1:
lcd_string("Diagnose Start!",LCD_LINE_1)
lcd_string(" ",LCD_LINE_2)
if pagecount ==2:
lcd_string("BMI Calculate!",LCD_LINE_1)
lcd_string(" ",LCD_LINE_2)
def lcd_init():
# Initialise display
問題是程序不停在key_pad()和key_pad1()處。它只是繼續循環,並改變要顯示的東西。我想顯示「按任意鍵繼續」,直到按下一個鍵。請幫我解決這個問題。如果問題不明確,請說明。非常感謝你。 PS。我使用的樹莓派的硬件部分
你可以只留下你的代碼的相關位?我猜所有的常量和定義都與你問題的本質無關。 – naktinis
請提供[mcve]。 –
ok,對不起 –