单片机
返回首页

STM32学习之--外部中断

2015-10-12 来源:eefocus

misc.h中定义的NVIC_InitTypeDef类型的结构体:

typedef struct
{
  uint8_t NVIC_IRQChannel;        //中断向量      

  uint8_t NVIC_IRQChannelPreemptionPriority;  //中断抢占优先级

  uint8_t NVIC_IRQChannelSubPriority;      //中断向量优先级

  FunctionalState NVIC_IRQChannelCmd;     //中断使能(ENABLE or DISABLE)
} NVIC_InitTypeDef;

 

中断优先级组stm32中用4位来决定。

STM32学习之--外部中断

外部中断初始化

1.开启时钟(外部中断要开启GPIO时钟和AFIO时钟)

2. 配置嵌套向量中断控制器NVIC

<1>选择中断优先级组NVIC_PriorityGroup_0~NVIC_PriorityGroup_4。

       调用函数NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)完成优先级组设定。

<2>配置中断源

       配置中断向量NVIC_IRQChannel;

       配置中断向量抢占优先级NVIC_IRQChannelPreemptionPriority;

       配置中断向量响应优先级NVIC_IRQChannelSubPriority;

       使能中断NVIC_IRQChannelCmd; (ENABLE or DISABLE)

       调用函数 NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)完成配置。

3.GPIO口初始化

       GPIO口选择GPIO_Pin

       外部中断GPIO口为输入模式,GPIO_Speed不用设置。

       GPIO输入模式GPIO_Mode

       调用 GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 完成配置。

4.配置EXTI中断线工作模式。

       调用GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);设置EXTI输入线。

       配置输入线EXTI_Line;

       配置输入线模式为中断模式  .EXTI_Mode = EXTI_Mode_Interrupt;

       配置中断触发方式.EXTI_Trigger = EXTI_Trigger_Falling;

       使能中断.EXTI_LineCmd = ENABLE;

       调用函数 EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章