EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; KEY_Init(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2); EXTI_InitStructure.EXTI_Line=EXTI_Line2; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); 解释每一句代码
时间: 2024-04-17 14:03:04 浏览: 216
EXTI—外部中断_STM32F103外部中断程序_
5星 · 资源好评率100%
这段代码是针对单片机开发的,主要是为了实现对外部中断的响应。下面是每一句代码的解释:
1. EXTI_InitTypeDef EXTI_InitStructure;:定义一个EXTI_InitTypeDef类型的结构体变量EXTI_InitStructure,用于配置外部中断线的触发模式、中断线号等参数。
2. NVIC_InitTypeDef NVIC_InitStructure;:定义一个NVIC_InitTypeDef类型的结构体变量NVIC_InitStructure,用于配置中断优先级等参数。
3. KEY_Init();:初始化按键,具体内容未知。
4. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);:开启AFIO时钟,该时钟控制着GPIO的复用功能。
5. GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);:配置GPIOE的Pin2引脚为外部中断线2。
6. EXTI_InitStructure.EXTI_Line=EXTI_Line2;:设置外部中断线号为2。
7. EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;:设置外部中断模式为中断模式。
8. EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;:设置触发模式为下降沿触发。
9. EXTI_InitStructure.EXTI_LineCmd = ENABLE;:使能外部中断线。
10. EXTI_Init(&EXTI_InitStructure);:将以上配置应用到外部中断线2上。
11. NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;:设置中断通道为外部中断线0,实际上应该是写成EXTI2_IRQn。
12. NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;:设置中断优先级为2。
13. NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;:设置中断响应优先级为3。
14. NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;:使能中断通道。
15. NVIC_Init(&NVIC_InitStructure);:将以上配置应用到中断控制器上。
阅读全文