首页 > 解决方案 > 在 Python 中用于 while 循环的 CPU 强度最低的调用

问题描述

我目前正在使用wiringpi 来控制我的Raspberry Pi 的mcp23017 扩展板的GPIO 端口。其中一个 GPIO 应用作输入并等待 INT_EDGE_FALLING 事件。Wiringpi 本身支持中断模式,但无论出于何种原因,仅支持 63 号引脚 - 我的是 70 号引脚。

所以我坚持这样的事情:

wiringpi.pinMode(70,0)
wiringpi.pullUpDnControl(70,2)
while wiringpi.digitalRead(70) == 1:
    print "not pressed"

这个循环导致大约 6% 的 CPU 使用率 - 有什么办法可以减少这种情况吗?在 while 循环中使用的 cpu 强度最低的命令是哪个?

标签: pythonwiringpi

解决方案


您可以使用pass语句什么都不做。

while wiringpi.digitalRead(70) == 1:
    pass

推荐阅读