所以,我有一个TFT屏幕和一个连接4个按钮的Raspberry Pi。按下按钮时,与该按钮关联的图像将使用fbi显示在屏幕上。按照我编写的方式,当按下按钮时,它将在旧按钮上创建一个新的fbi显示。所以,我最终将一堆fbi显示器叠放在一起。
有没有办法只用新的fbi显示替换当前的fbi显示,而不是创建一个叠加在旧的显示上?
这是我的python代码:
import RPi.GPIO as GPIO
import os
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
os.system("sudo fbi -T 2 -d /dev/fb1 -noverbose -a normal.png")
var = 1
while var == 1:
if (GPIO.input(23) == False):
os.system("sudo fbi -T 2 -d /dev/fb1 -noverbose -a happy.png")
if (GPIO.input(22) == False):
os.system("sudo fbi -T 2 -d /dev/fb1 -noverbose -a sad.png")
if (GPIO.input(27) == False):
os.system("sudo fbi -T 2 -d /dev/fb1 -noverbose -a angry.png")
if (GPIO.input(18) == False):
os.system("sudo fbi -T 2 -d /dev/fb1 -noverbose -a surprised.png")
GPIO.cleanup()
答案 0 :(得分:2)
您可以在显示新图像之前终止该过程。
....
if (GPIO.input(23) == False):
os.system("sudo killall -9 fbi")
os.system("sudo fbi -T 2 -d /dev/fb1 -noverbose -a happy.png")
....