我正在编写一个程序来控制我的覆盆子pi上的GPIO。我希望我的程序可以问我在关闭之前要保留GPIO多长时间。
是否可以让它保持1小时然后关闭。我遇到的问题是,当它打开一小时后,我无法发出任何其他命令来打开其他GPIO,因为sleep.time
仍在处理中。我想同时为不同的时间设置多个GPIO。
答案 0 :(得分:1)
有很多方法可以解决这个问题。从概念上讲,不是睡30秒然后做某事,你可以睡一秒钟,做一堆东西,检查时间,泡沫,冲洗,重复。通过"睡一秒钟"它可以很容易地是十分之一秒或五秒或者对我来说似乎合理的东西。
另一种解决方案是为此sleep命令创建第二个线程(或进程),以便主线程(或进程)不受影响地运行。
选择取决于您需要做什么,需要延迟的准确程度,系统上运行的其他内容等等。
答案 1 :(得分:-1)
您当前的脚本只有一个线程正在运行,sleep()会将当前正在运行的线程置于睡眠模式,这会阻止其他命令。
time.sleep(秒)
暂停执行当前线程达到给定的秒数。
您需要在后台再添一个线程,为您保留计时器。同时,前台的线程仍然可以接受其他命令。
我建议你阅读这个页面 threading – Manage concurrent threads