【发布时间】:2018-09-07 05:16:24
【问题描述】:
所以我在这里有一个 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);
}
}
【问题讨论】:
-
在按钮被按下和释放时打印消息来解决它。
标签: c++ raspberry-pi wiringpi