树梅派硬件编程_按键中断
Posted Leslie X徐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树梅派硬件编程_按键中断相关的知识,希望对你有一定的参考价值。
按键
中断函数的使用
中断信号函数的使用
int wiringPiISR (int pin, int edgeType, void (*function)(void)) ;
使用到的edgeType宏:
INT_EDGE_FALLING,
INT_EDGE_RISING,
INT_EDGE_BOTH,
INT_EDGE_SETUP
初始化按键
- pin
#define PIN_KEY1 26
#define PIN_KEY2 23
#define PIN_LED 7
pinMode(PIN_KEY1, INPUT);
pinMode(PIN_KEY2, INPUT);
pinMode(PIN_LED, OUTPUT);
- 设置中断槽函数
void LED_ON_func(){
printf("LED ON\\n");
digitalWrite(PIN_LED,1);
}
void LED_OFF_func(){
printf("LED OFF\\n");
digitalWrite(PIN_LED,0);
}
- 绑定中断信号和槽函数
wiringPiISR(PIN_KEY1, INT_EDGE_FALLING, LED_ON_func);
wiringPiISR(PIN_KEY2, INT_EDGE_FALLING, LED_OFF_func);
###代码
/*
* keyInterrupt.c
*
*
*
*/
#include <stdio.h>
#include <wiringPi.h>
#define PIN_KEY1 26
#define PIN_KEY2 23
#define PIN_LED 7
void wiringPiStart(void)
{
wiringPiSetup();
pinMode(PIN_KEY1, INPUT);
pinMode(PIN_KEY2, INPUT);
pinMode(PIN_LED, OUTPUT);
digitalWrite(PIN_LED,0);
}
void LED_ON_func(){
printf("LED ON\\n");
digitalWrite(PIN_LED,1);
}
void LED_OFF_func(){
printf("LED OFF\\n");
digitalWrite(PIN_LED,0);
}
int main(int argc, char **argv)
{
wiringPiStart();
//int wiringPiISR (int pin, int edgeType, void (*function)(void)) ;
//INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP
wiringPiISR(PIN_KEY1, INT_EDGE_FALLING, LED_ON_func);
wiringPiISR(PIN_KEY2, INT_EDGE_FALLING, LED_OFF_func);
while(1){
}
return 0;
}
以上是关于树梅派硬件编程_按键中断的主要内容,如果未能解决你的问题,请参考以下文章