一:实验现象 程序实现在树莓派上通过中断的方式检测按键是否按下,如果按键按下的话,会打印出按键按下的提示信息 二:操作步骤 1,初始化wiringPi库; 2,设置按键引脚为输入模式; 3,设置引脚为上拉模式(即:当按键没有被按下时,该输入脚为高电平; 4,注册中断程序,并且设置中断的触发方式; 5,判断中断标志位,检测按键是否按下,清空标志位,方便下次检测。 #include <wiringPi.h> #include <stdio.h>#include <stdlib.h> int flag=0; //按键服务函数 void myInterruptService(){ flag=1; } int main() { if(wiringPiSetup()<0) //初始化wiringPi库 { printf("can't init wiringPi\n"); //初始化失败时,打印出提示信息,并且推出 return -1; } printf("test interrput\n"); //打印提示信息 pinMode(0,INPUT); //引脚0为输入模式 pullUpDnControl(0,PUD_UP); //设置0号引脚上拉 //注册中断程序 if(wiringPiISR(0,INT_EDGE_FALLING,&myInterruptService)<0) //设置引脚下降沿触发 { printf("unable ISR\n"); } // while(1) { if(flag) { while(digitalRead(0)==LOW); //检测按键是否松开,没有松开的话,一直等待 printf("key Press\n"); //打印提示信息 flag=0; //清空标志位 } } return 0; } 博文索引 持续更新中。。。 |
|