STM32 - HAL笔记(二):EXTI中断

基础知识

概述
  • ARM Cortex M3内核支持256个中断,包括16个内核中断240个外设中断,拥有256个中断优先级别
  • STM32的中断通道可能会由多个中断源共用,因此在中断服务函数入口处需要判断中断源
  • STM32中有两个中断优先级概念,抢占优先级响应优先级,每个中断都应指定这两个优先级

外部中断
  • 16个外部中断源EXTI0 ~ EXTI15,对应7个中断向量,即7个中断服务函数

    • EXTI0、EXTI1、EXTI2、EXTI3、EXTI4:专用
    • EXTI5 ~ EXTI9:共用
    • EXTI10 ~ EXTI15:共用
  • 触发条件

    • 上升沿触发
    • 下降沿触发
    • 双边沿触发
__weak
  • STM32中的关键字,可用于修饰变量或函数
  • 当一个函数前面加上__weak这样的修饰符以后,允许用户在其它文件中定义一个和__weak修饰过的一模一样的函数,最终当编译器编译的时候,会选择用户定义的函数,如果用户没有重新实现这个函数,则编译器就会去执行带__weak修饰的函数
  • 详细内容

API

/*
 * @Descript	中断回调函数
 * @param		GPIO_Pin		引起中断的引脚	
 * @return		void
*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

Demo

  1. 在STM32Cube中设置相关管脚

在这里插入图片描述

  1. 选择触发方式、上/下拉

在这里插入图片描述

  1. 点击NVIC使能中断

在这里插入图片描述

  1. main函数中复写HAL_GPIO_EXTI_Callback函数

    //main.c
    void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
        switch(GPIO_Pin){
            case GPIO_PIN_x:
                //what you want to do
                break;
            //...    
        } 
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值