码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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
  • 相关阅读:
    [C# 中的序列化与反序列化](.NET 源码学习)
    【Linux】权限管理
    【docker desktop】MongoDB配置并用NodeJS连接
    今天面了个腾讯拿38K出来的大佬,让我见识到了基础的天花板
    A40I工控主板(SBC-X40I)LVDS显示屏测试
    【matlab深度学习工具箱】classificationLayer参数详解
    【案例实战】高性能SpringBoot整合短线验证码发送(池化思想+异步结合)
    Spring-Spring之AOP底层源码解析(下)
    生信教程:使用拓扑加权探索基因组进化(3)
    【试题030】C语言之关系表达式例题
  • 原文地址:https://blog.csdn.net/weixin_49079904/article/details/127577210
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号