exti.c
#include "./BSP/EXIT/exit.h"
#include "./SYSTEM/delay/delay.h"
void exit_init(void)
{
GPIO_InitTypeDef gpio_init_struct;
__HAL_RCC_GPIOA_CLK_ENABLE();
gpio_init_struct.Pin = GPIO_PIN_15;
gpio_init_struct.Mode = GPIO_MODE_INPUT ;
gpio_init_struct.Pull = GPIO_PULLUP;
gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &gpio_init_struct);
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);//设置中断优先级
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); //使能中断
}
void EXTI15_10_IRQHandler(void)//中断处理函数
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_15);//公共服务函数
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
delay_ms(20);
if(GPIO_Pin==GPIO_PIN_15)
{
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_15)==0)
{
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}
}
}