因此,我在这里有一个 c++ 程序,它利用wiringPi 使线程休眠,直到按下按钮(在使用GPIO 的rapsberryPi 上),但是当按下按钮时,它通常可以多次打印消息。我试图通过在循环中休眠几秒钟来解决这个问题,但这并没有帮助我相信它与中断生成如何调用函数有关。关于如何解决这个问题的任何建议,以便每次按下按钮时该功能只运行一次?
#include <stdlib.h>
#include <iostream>
#include <wiringPi.h>
#include <unistd.h>
void printMessage(void) {
std::cout << "Button pressed! hooray" << std::endl;
}
int main(int argc, char const *argv[]) {
wiringPiSetup();
while(true) {
wiringPiISR(3, INT_EDGE_FALLING, &printMessage);//3 is the wiringPi pin #
sleep(3);
}
}