Это мой первый вопрос, задаваемый вопросом в этом форуме. Если есть ошибки при публикации этого вопроса, пожалуйста, сообщите об этом.Программа не останавливается на функции (while true loop) в Python
Я выполняю функцию меню с помощью 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. Я использую Raspberry Pi для аппаратной части
Можете ли вы оставить только соответствующие биты вашего кода? Я предполагаю, что все константы и определения не имеют отношения к сути вашего вопроса. – naktinis
Пожалуйста, предоставьте [mcve]. –
ОК, извините за это –