STM32之外部中断EXTI.docVIP

  • 11
  • 0
  • 约2.28千字
  • 约 4页
  • 2017-07-09 发布于河南
  • 举报
STM32之外部中断EXTI

STM32之外部中断EXTI STM32中断控制线支持19个外部中断/事件请求,每个中断都有对应状态位和独立的触发与屏蔽设置。STM32F103的19个外部中断为: 线0-15:对应GPIO口的输入中断。 线16:连接到PVD输出(掉电检测,掉电时可立即保存重要数据作用)。 线17:连接RTC闹钟事件。 线18:连接到USB唤醒事件。 每个IO口都可作为外部中断输入口的STM32的IO口远多于16个,而IO口使用的中断线只有16个。为此,GPIO管脚GPIOx.0~GPIOx.15(X=A,F,G)分别对应中断线0-15.这样每个中断线对应了7个IO口。如线0对应着GPIOA.0,GPIOB.0,GPIOC.0,GPIOD.0,GPIOE.0,GPIOF.0,GPIOG.0但是每个中断线每次只能连接到1个IO口上。 这样就需要通过相关的配置来决定对应的中断线被配置到哪个GPIO上了。 GPIO和中断线的映射关系如下图: GPIO与中断映射配置通过函数来实现 void GPIO_EXTILineConfig ( uint8_t? GPIO_PortSource, uint8_t? GPIO_PinSource? ) 例如: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE , GPIO_PinSource2); 即外部中断线2就和GPIOE映射起来了,显然是GPIOE.2与EXTI2中断线连接起来了。 接着需设置中断触发方式: void EXTI_Init ( EXTI_InitTypeDef *? EXTI_InitStruct ) 例如: EXTI_InitTypeDef EXTI_InitStructure; EXTI_InitStructure.EXTI_Line=EXTI_Line4; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(EXTI_InitStructure); 以上例子设置了中断线line4的中断为下降沿触发。 设置好了中断线和GPIO的映射关系,然后又设置好了中断的触发模式等参数。既然是外部中断,设计到中断我们当然需要设置NVCI的中断优先级。 配置完中断优先级后,接着是编写中断服务函数。中断服务函数名字在MDK中事先有定义。但是不得不提的是,STM32的IO口外部中断只有6个,分别是: EXPORT EXT0_IRQHandle EXPORT-----------------------中断线0对应的中断函数 EXT1_IRQHandle EXPORT-----------------------中断线1对应的中断函数 EXT2_IRQHandle EXPORT-----------------------中断线2对应的中断函数 EXT3_IRQHandle EXPORT-----------------------中断线3对应的中断函数 EXT4_IRQHandle EXPORT-----------------------中断线4对应的中断函数 EXT9_5_IRQHandle EXPORT------------------------中断线5-9对应的中断函数 EXT15_10_IRQHandle --------------------------------中断线10-15共用的中断函数 编写中断服务函数经常需要使用两个函数。 第一个是判断某个中断线上的中断是否发生(即标志位是否置位): ITStatus EXTI_GetITStatus(uint32_t EXTI_line); //放在中断服务函数开头,监测中断标志位 第二个是清除某个中断线上的中断标志位(即清除标志位): void EXTI_ClearITPendingBit(uint32_t EXTI_Line);//放在函数的结尾 常用外部中断服务函数的格式: //格式一 void EXTI3_IRQHandler(void) { If( EXTI_GetITStatus(EXTI_Line3)!-=RESET)//判断是否置位 { Dosomething();//执行中断事件 EXTI_ClearITPendingBit(EXTI_Line3);//清零LINE上标志位 } } //=========

文档评论(0)

1亿VIP精品文档

相关文档