树梅派硬件编程_按键中断

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

初始化按键

  1. 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);
  1. 设置中断槽函数
void LED_ON_func(){
	printf("LED ON\\n");
	digitalWrite(PIN_LED,1);
}

void LED_OFF_func(){
	printf("LED OFF\\n");
	digitalWrite(PIN_LED,0);
}
  1. 绑定中断信号和槽函数
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;
}


以上是关于树梅派硬件编程_按键中断的主要内容,如果未能解决你的问题,请参考以下文章

树梅派硬件编程_ADC

树梅派硬件编程_QT_OLED显示字符

树梅派硬件编程_超声波测距

树梅派硬件编程_红外遥控器

树梅派硬件编程_DTH11温湿度检测

树梅派硬件学习_多线程任务