• STM32F407ZGT6|实现中断操作


    功能:按下KEY键灯亮,再按KEY键灯灭(外部中断
    本实验步骤
    1、一些初始化
    2、使能IO口时钟/LED灯外设时钟/使能SYSCFG时钟(中断必打开)
    3、GPIO与中断线的重映射
    4、初始化LED及KEY寄存器
    5、初始化线上中断EXTI_Init()
    6、配置中断分组NVIC
    7、编写中断服务函数

    基本概念

    中断数量、抢占优先级与响应优先级、中断步骤

    中断数量
    共有92个中断,10个内核中断,82个可屏蔽中断(常用);
    16级可编程的中断优先级

    抢占优先级与响应优先级
    抢占优先级越高,中断程序优先级越高;
    若:中断1抢占优先级为2,中断2抢占优先级为1
    响应优先级
    若:两中断抢占优先级相同时,中断1响应优先级是3,中断2响应优先级为2(先响应中断2再响应中断1)

    中断重要步骤
    1、使能IO口时钟
    2、使能SYSCFG时钟(中断必打开)
    3、GPIO与中断线的重映射
    4、初始化线上中断EXTI_Init()
    5、配置中断分组NVIC
    6、编写中断服务函数:判断中断是否发生;清除某中断线的中断标志位

    1、一些初始化

    	GPIO_InitTypeDef  GPIO_InitStructure; //KEY
    	GPIO_InitTypeDef  GPIO_InitStructure1;//LED
    	EXTI_InitTypeDef  EXIT_InitStructure;//EXTI
    	NVIC_InitTypeDef  NVIC_InitStructure;//NVIC
    
    • 1
    • 2
    • 3
    • 4

    2、使能IO口时钟/LED灯外设时钟/使能SYSCFG时钟

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//ʹĜGPIOCʱ֓ 外设时钟使能
    	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//ʹĜGPIOAʱ֓ 外设时钟使能
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//SYSCFG时钟
    
    • 1
    • 2
    • 3

    3、GPIO与中断线的重映射

    	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource15);// PA15连接线15
    
    • 1

    4、初始化LED及KEY寄存器

      //GPIOPC13 LED
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//LED0º͌ED1¶ԓ¦IO¿ڍ 引脚
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//ƕͨʤ³öģʽ 输出模式寄存器
      GPIO_Init(GPIOC, &GPIO_InitStructure);//³õʼ»¯GPIO //引脚,GPIO结构体地址
    	
     //1 GPIOPA15 KEY
      GPIO_InitStructure1.
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Activiti工作流引擎中责任链模式的建立与应用原理
    Java 设计模式——组合模式
    K8S之Pod详解
    倒置字符串
    linux进程的调度
    组件之间通过bus中央事件总线进行通信
    详解Kotlin中run、with、let、also与apply的使用和区别
    TP5 queue队列详解
    Landsat Collection 2 T1一级数据详细介绍(数据处理过程和几何精度)
    实践torch.fx第二篇-fx量化实操
  • 原文地址:https://blog.csdn.net/weixin_49079904/article/details/127577210