配置B1口
/**
* @brief EXTI配置函数
* @param 无
* @retval 无
*/
static void APP_ConfigureEXTI(void)
{
/* 使能GPIOB */
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOB);
/* 配置PB1输入模式 */
LL_GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = LL_GPIO_PIN_1;
GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* 配置EXTI为中断、下降沿触发 */
LL_EXTI_InitTypeDef EXTI_InitStruct;
EXTI_InitStruct.Line = LL_EXTI_LINE_1;
EXTI_InitStruct.LineCommand = ENABLE;
EXTI_InitStruct.Mode = LL_EXTI_MODE_IT;
EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_FALLING;
LL_EXTI_Init(&EXTI_InitStruct);
/*EXTI2选择PB1触发*/
LL_EXTI_SetEXTISource(LL_EXTI_CONFIG_PORTB,LL_EXTI_CONFIG_LINE1);
/* 使能中断 */
NVIC_SetPriority(EXTI0_1_IRQn, 0);
NVIC_EnableIRQ(EXTI0_1_IRQn);
}
/**
* @brief 中断入口函数,每产生一次下降沿,LED翻转一次
* @param 无
* @retval 无
*/
void EXTI0_1_IRQHandler(void)
{
/* 处理EXTI中断请求 */
if(LL_EXTI_IsActiveFlag(LL_EXTI_LINE_1))
{
//LL_GPIO_TogglePin(GPIOA,LL_GPIO_PIN_6); //反转
LL_EXTI_ClearFlag(LL_EXTI_LINE_1);
}
}
配置A7口
/**
* @brief EXTI配置函数
* @param 无
* @retval 无
*/
static void APP_ConfigureEXTI(void)
{
/* 使能GPIOA */
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
/* 配置PA7输入模式 */
LL_GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = LL_GPIO_PIN_7;
GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* 配置EXTI为中断、下降沿触发 */
LL_EXTI_InitTypeDef EXTI_InitStruct;
EXTI_InitStruct.Line = LL_EXTI_LINE_7;
EXTI_InitStruct.LineCommand = ENABLE;
EXTI_InitStruct.Mode = LL_EXTI_MODE_IT;
EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_FALLING;
LL_EXTI_Init(&EXTI_InitStruct);
/*EXTI2选择PA7触发*/
LL_EXTI_SetEXTISource(LL_EXTI_CONFIG_PORTA,LL_EXTI_CONFIG_LINE7);
/* 使能中断 */
NVIC_SetPriority(EXTI4_15_IRQn, 0);
NVIC_EnableIRQ(EXTI4_15_IRQn);
}
/**
* @brief 中断入口函数,每产生一次下降沿,LED翻转一次
* @param 无
* @retval 无
*/
void EXTI4_15_IRQHandler(void)
{
/* 处理EXTI中断请求 */
if(LL_EXTI_IsActiveFlag(LL_EXTI_LINE_7))
{
BSP_LED_Toggle(LED_GREEN);
LL_EXTI_ClearFlag(LL_EXTI_LINE_7);
}
}