标题: stm32外部中断实验EXTI(pdf教程文档下载) [打印本页]

作者: k佛说k    时间: 2018-4-26 16:31
标题: stm32外部中断实验EXTI(pdf教程文档下载)
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 与中断映射配置通过函数来实现
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 的中断优先级。


完整的pdf格式文档51黑下载地址(共3页):
STM32之外部中断EXTI.pdf (165.37 KB, 下载次数: 17)



作者: aestest    时间: 2018-4-28 16:29
学习了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1