私はcとRaspberry Piに比較的慣れておらず、簡単なプログラムを試しています. 私が望むのは、ボタンが押されたときに一度 printfs され、ボタンが押されたままになっていても (一種のラッチ)、ボタンが再度押されるまで再度 printf しないことです。2番目のwhileループを追加するとこれが修正されるのではないかと思いましたが、それでもボタンの押下が検出されないことがあります。
#include <bcm2835.h>
#include <stdio.h>
#define PIN RPI_GPIO_P1_11
int main()
{
if(!bcm2835_init())
return 1;
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_INPT);
while(1)
{
if(bcm2835_gpio_lev(PIN))
{
printf("The button has been pressed\n");
}
while(bcm2835_gpio_lev(PIN)){}
}
bcm2835_close();
return 0;
}