STM32--GPIO和外部中断
2013-07-03 14:56
218 查看
STM32中使用GPIO作为外部中断,以如下图的方式连接到外部中断,因此在设计的时候,不能同时将中断连接在PA.1 PB.1 PC.1 PD.1 PE.1,因为同时只能选择一个中断。
外部中断初始化,一个重要的结构体EXIT_InitTypeDef;
在GPIO用作外部中断首先需要将EXTIx和具体的GPIO口对应起来,选择GPIO管脚用作外部中断线路
void GPIO_EXTILineConfig(u8 GPIO _PortSource, u8 GPIO_PinSource)
GPIO_PortSource: 选择用作外部中断线源的 GPIO端口
GPIO_PinSource :待设置的外部中断线路
然后对结构体EXIT_InitTypeDef进行初始化
连续初始化外部EXTI时,只需要修改EXTI_InitStruct.EXTI_Line参数就行了,然后在调用EXIT_Init(&EXTI_InitStructure )函数进行初始化
中断函数里面
外部中断初始化,一个重要的结构体EXIT_InitTypeDef;
typedef struct { uint32_t EXTI_Line; //EXTIx,设定是哪个外部中断EXTI_0,EXTI_1,EXTI_2....EXTI_15 EXTIMode_TypeDef EXTI_Mode; //设定是中断还是事件 Interrupt or Event EXTITrigger_TypeDef EXTI_Trigger; //触发的方式,上升沿,下降沿,上升-下降过程转换 FunctionalState EXTI_LineCmd; //使能或禁止 Enable or Disable }EXTI_InitTypeDef;
在GPIO用作外部中断首先需要将EXTIx和具体的GPIO口对应起来,选择GPIO管脚用作外部中断线路
void GPIO_EXTILineConfig(u8 GPIO _PortSource, u8 GPIO_PinSource)
GPIO_PortSource: 选择用作外部中断线源的 GPIO端口
GPIO_PinSource :待设置的外部中断线路
然后对结构体EXIT_InitTypeDef进行初始化
EXTI_InitStructure.EXTI_Line = GPIO_KEY1_EXTI_LINE; //使用的中断线为EXTI_x EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //外部中断模式 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能 EXTI_Init(&EXTI_InitStructure);//初始化EXIT_Init(&EXTI_InitStructure )根据EXTI_InitStruct 中指定的参数初始化外设 EXTI寄存器 。
连续初始化外部EXTI时,只需要修改EXTI_InitStruct.EXTI_Line参数就行了,然后在调用EXIT_Init(&EXTI_InitStructure )函数进行初始化
GPIO_EXTILineConfig(GPIO_KEY2_EXTI_PORT_SOURCE, GPIO_KEY2_EXTI_PIN_SOURCE);//另外一个端口的GPIO管脚作为中断线
EXTI_InitStructure.EXTI_Line = GPIO_KEY2_EXTI_LINE;//修改EXTI_Line参数 EXTI_Init(&EXTI_InitStructure); //再次进行初始化
中断函数里面
void EXTIx_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Linex) != 0)//检查指定的EXTI线路触发请求发生与否 { ... ... // do something /* Clear the EXTI Line 0 */ EXTI_ClearITPendingBit(EXTI_Line0); //清除EXTI线路挂起位 } }
相关文章推荐
- STM32 GPIO外部中断总结
- STM32简单入门程序分析之GPIO,外部中断
- stm32学习笔记:GPIO外部中断的使用
- STM32 GPIO外部中断总结
- STM32 外部GPIO中断配置
- STM32之中断与事件---一个使用GPIO作为外部中断的示例
- STM32外部中断
- STM32的外部中断配置
- STM32_外部中断_笔记
- STM32外部中断详解
- STM32外部中断无法触发的问题
- STM32 外部中断
- STM32外部中断总结
- STM32外部中断的使用
- STM32学习笔记——外部中断EXTI
- STM32之外部中断 EXTI
- stm32 外部中断的使用(含实例)
- 一知半解学CubeMX——GPIO:外部(按键)中断
- STM32外部中断篇
- STM32 F103 外部中断学习笔记