STM32F407学习笔记 EXTI外部中断

//外部中断:
//什么是EXTI:
    外部中断/事件控制器
    //中断与事件的区别:
        中断:需要用到CPU-----中断服务函数
        事件:不需要用CPU-----IO口开启定时器
    //作用:
        检测GPIO口电平变化,EXTI控制器(只有一个)可以产生中断信号给到NVIC控制器,23个中断源(16+7)    
        电平变化:低电平 -->  高电平(上升沿)  /  高电平 --> 低电平 (下降沿)
      
    //外部中断触发条件:
        检测IO口的上升沿/下降沿触发

//使用场景:
    1、检测电平变化 (中断实时性)   ----   (唤醒按键、点亮屏幕)
    2、计数边沿个数   ---   红外避障模块计数    
    3、检测设备状态(传感器)   ---     某些传感器:IRQ/DETECT
    
//EXTI接口:
    芯片内部有一个EXTI控制器(属于片上外设),EXTI控制器上面有23个外部中断线接口(16 + 7)

    16:分别对应GPIO端口管脚  (PxN)   0 - 15
    7:连接芯片内部的其他器件
    
//EXTI基本框图:


    
//exti0中断初始化:
void Exti0_Init(void)
{
    u32 pri;
    //打开时钟
    RCC->AHB1ENR |= 1 << 0;
    RCC->APB2ENR |= 1 << 14;
    //初始化GPIOA---配置为输入模式
    GPIOA->MODER &=~ (3 << 0);
    //配置IO口与EXTI的映射关系
    SYSCFG->EXTICR[0] &=~ (0xf << 0);
    //初始化EXTI
    EXTI->IMR |= 1 << 0;//中断使能
    EXTI->RTSR |= 1 << 0;//选择上升沿触发
    
    //配置NVIC
    pri = NVIC_EncodePriority (5,0,1);//计算编码值
    NVIC_SetPriority(EXTI0_IRQn,pri);//配置优先级
    NVIC_EnableIRQ(EXTI0_IRQn);//使能中断源
}

//后面加具体的中断服务函数;    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值