stm32LL库配置输入中断
时间: 2024-06-17 12:06:25 浏览: 218
STM32 LL库是针对低层级别的外设驱动库,相对于标准库而言,它更贴近芯片的硬件寄存器,因此具有更高的执行效率和更少的代码开销。下面是配置STM32输入中断的基本步骤:
1. 选择合适的GPIO口作为中断源,并进行相应的GPIO初始化配置,设置为输入模式。
2. 开启中断时钟,并使能中断线。
3. 配置中断优先级,可以通过LL库提供的函数LL_GPIO_SetPriority()进行配置。
4. 配置中断触发条件,可以选择上升沿触发、下降沿触发、上升下降沿同时触发等,通过LL_GPIO_SetPinMode()函数设置即可。
5. 编写中断服务函数,中断服务函数需要使用__attribute__((interrupt))修饰符进行声明,中断服务函数需要在stm32xxx_it.c文件中实现。
下面是一个简单的例子:
```
//初始化GPIO口
LL_GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = LL_GPIO_PIN_0;
GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//开启中断时钟
NVIC_SetPriority(EXTI0_IRQn, 1);
NVIC_EnableIRQ(EXTI0_IRQn);
//配置中断触发条件
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_0, LL_GPIO_MODE_IT_RISING_FALLING);
//编写中断服务函数
void EXTI0_IRQHandler(void)
{
if(LL_EXTI_IsActiveFlag_0_31(LL_EXTI_LINE_0) != RESET)
{
LL_EXTI_ClearFlag_0_31(LL_EXTI_LINE_0);
//处理中断事件
}
}
```
阅读全文