STM32 | STM32F407ZE中断、按键、灯(续第三天)

上节回顾

STM32 | 库函数与寄存器开发区别及LED等和按键源码(第三天)

一、 中断

中断概念

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行(面试题)。

STM32外部中断需要注重知识点EXTI与NVIC,STM32所有引脚均可以做为外部中断。

4.1、外部中断/事件控制器 (EXTI)

EXTI 控制器的主要特性如下:
● 每个中断/事件线上都具有独立的触发和屏蔽
● 每个中断线都具有专用的状态位
● 支持多达 23 个软件事件/中断请求
● 检测脉冲宽度低于 APB2 时钟宽度的外部信号。有关此参数的详细信息,请参见
STM32F4xx 数据手册的电气特性部分。

引脚中断线

上升沿:数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。

下降沿:数字电路中,数字电平从高电平(数字“1”)变为低电平(数字“0”)的那一瞬间叫作下降沿。

4.2 NVIC

嵌套向量中断控制器 (NVIC)

NVIC 特性
嵌套向量中断控制器 NVIC 包含以下特性:
● STM32F405xx/07xx 和 STM32F415xx/17xx 具有 82 个可屏蔽中断通道, STM32F42xxx
和 STM32F43xxx 具有多达 86 个可屏蔽中断通道(不包括 Cortex™-M4F 的 16 根中
断线)
● 16 个可编程优先级(使用了 4 位中断优先级)
● 低延迟异常和中断处理
● 电源管理控制
● 系统控制寄存器的实现
嵌套向量中断控制器 (NVIC) 和处理器内核接口紧密配合,可以实现低延迟的中断处理和晚
到中断的高效处理。

NVIC优先级分为抢占优先级与响应优先级。

数字越小,优先级别越高

优先级分组

抢占优先级 & 响应优先级区别:  抢占优先级 > 响应优先级

  • 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。

  • 抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。

  • 抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。

  • 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;

例:

假定设置中断优先级组为2,然后设置中断3(RTC中断)的抢占优先级为2,响应优先级为1。中断6(外部中断0)的抢占优先级为3,响应优先级为0。中断7(外部中断1)的抢占优先级为2,响应优先级为0。

中断7>中断3>中断6。

4.3外部中断配置流程

外部中断配置流程要添加的库函数:stm32f4xx_exti.c和stm32f4xx_syscfg.c

参考库函数案例

1、理解按键原理

KEY0 连接PA0,选择下降沿触发

2、设置NVIC分组

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

3、使能SYSCFG及GPIOA时钟: 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);

4、 初始化IO口为输入。

GPIO_Init();

5、设置IO口与中断线的映射关系。

void SYSCFG_EXTILineConfig();

6、初始化线上中断,设置触发条件等。

EXTI_Init();

7、配置中断分组(NVIC),并使能中断。

NVIC_Init();

8、 编写中断服务函数。

EXTIx_IRQHandler();

9、清除中断标志位

EXTI_ClearITPendingBit();

五、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年3月11日-3月17日(全面进行)

根据月计划,为了要考虑把产品代码吃透。先对于计算几何,图像处理,测量学基础,slam进行 当然,也要把ue继续进行着。ue的rpg和底层渲染。收集下虚幻商城的免费资源,万一以后做独立游戏用得到。其他的可以暂时…

智慧城市大模型来啦!港大百度推出UrbanGPT

论文作者解读链接:https://blog.csdn.net/qq_42715656/article/details/136681839 项目链接:https://urban-gpt.github.io/ 代码链接:https://github.com/HKUDS/UrbanGPT 论文链接:https://arxiv.org/abs/2403.00813 研究实验室链…

编曲制作软件Fruity Loops Studio 21 中文版及新如何选择适合FL Studio 版本

如果你有着满腔的音乐才华,想要自己在家里发片吗?还是听 MOBY 的电子舞曲不过瘾,要再帮他做做 REMIX?有朋友会说,我不懂乐理,不懂五线谱,怎么制作音乐?这话说得很好,说到…

力扣-[700. 二叉搜索树中的搜索]

递归法 确定递归函数的参数和返回值 递归函数的参数传入的就是根节点和要搜索的数值,返回的就是以这个搜索数值所在的节点。 代码如下: public TreeNode searchBST(TreeNode root, int val) 确定终止条件 如果root为空,返回null&#xff0c…

Apache Paimon系列之:认识Paimon

Apache Paimon系列之:认识Paimon 一、认识Paimon二、统一存储三、基本概念1.文件布局2.Snapshot3.清单文件4.数据文件5.分区6.一致性保证 一、认识Paimon Apache Paimon的架构: 如上架构所示: 读/写:Paimon 支持多种读/写数据和…

C++高级面试题:解释 C++ 中的函数对象适配器

解释 C 中的函数对象适配器 函数对象适配器是 C 中的一种编程技术,用于修改或增强现有的函数对象的行为。它们通常通过组合或包装现有的函数对象来实现所需的功能。 函数对象适配器允许我们在不修改原始函数对象的情况下,对其进行修改或扩展。这样可以…

4、设计模式之建造者模式(Builder)

一、什么是建造者模式 建造者模式是一种创建型设计模式,也叫生成器模式。 定义:封装一个复杂对象构造过程,并允许按步骤构造。 解释:就是将复杂对象的创建过程拆分成多个简单对象的创建过程,并将这些简单对象组合起来…

使用 ReclaiMe Pro 进行 RAIDZ 数据恢复

天津鸿萌科贸发展有限公司是 ReclaiMe Pro 数据恢复软件授权代理商。 ZFS 是一个开源文件系统,主要用于 FreeNAS 和 NAS4Free 存储系统。在开发 ZFS 时,主要目标是可靠性,这是通过写时复制、冗余元数据、日志等不同功能来实现的。ZFS 使用自…

修改表结构

目录 修改表结构 创建数据表插入数据 修改已有列 修改 member 表的 name 列的定义 为表增加列 增加一个 address 列,这个列上不设置默认值 增加一个 sex 列,这个列上设置默认值 删除表中的列 删除 sex 列 Oracle从入门到总裁:​​​​​​https…

Kibana中的KQL语法

Kibana中的KQL语法 注意 KQL匹配时是不区分大小写的,可以使用括号改变匹配优先级;另外一个要点就是,匹配是包含,某个字段包含某个词,而不是某个字段的值等于某个词。 等值匹配(equals) 分词…

SpringSecurity两种验证方式及调用流程

一、HttpBasic方式 <security:http-basic/> 二、Formlogin方式 <security:form-login login-page"/userLogin" /> 三、SpringSecurity执行流程

华为机试题-字符串压缩

题目 给定段英文句子和—个英文单词列表。英文句子包含英文单词和标点符号,其中: 1)英文单词只包含[a-zA-Z]范国内的字符; 2)标点符号包括逗号、句号、双引号(双引号两边至少有一个空格)。 如果列表中有单词在句子中存在(大小写不敏感)且该单词未被双引号包含,则使 用该单词在列…

【LeetCode】升级打怪之路 Day 18:二叉树题型 —— 树的深度、高度、路经

今日题目&#xff1a; 104. 二叉树的最大深度111. 二叉树的最小深度110. 平衡二叉树257. 二叉树的所有路径112. 路径总和 目录 Problem 1&#xff1a;树的深度LC 104. 二叉树的最大深度 【easy】LC 111. 二叉树的最小深度 【易错】 Problem 2&#xff1a;树的高度LC 110. 平衡二…

【 TypeScript 】TypeScript的数据类型有哪些?

1. 是什么 ts和js 几乎一样&#xff0c;拥有相同的数据类型&#xff0c;另外在js基础上提供了更加实用的类型供开发使用 在开发阶段&#xff0c;可以为明确的变量定义某种类型&#xff0c;这样ts就能在编译阶段进行类型检查&#xff0c;当类型不符合预期结果的时候就会出现错误…

人类的三大非理性怪癖

人们对自己拥有的东西迷恋到不能自拔。 人们总是把注意力集中到白己会失去什么&#xff0c;而不是会得到什么。 人们经常假定别人看待交易的角度和自己一样。 所有权依恋 一个人总是对于自己拥有所有权的物件给予更高的评价。 所有权效应的特性 1.人们不仅对白己拥有所有…

工具推荐:有哪些工具可以搭建本地知识库?

大家是否心头藏着一个个的记录本&#xff0c;里面写满了工作日常、业务过程、个人想法等等&#xff0c;但是随着这个记录本日渐丰满&#xff0c;寻找特定信息的难度也在逐渐增大。如果有一个空间&#xff0c;既像你的记录本一样方便记录&#xff0c;又可以快速检索&#xff0c;…

19113133262(微信同号)2024年环境能源与全球市场营销国际学术会议(ICEEGM 2024)

2024年环境能源与全球市场营销国际学术会议&#xff08;ICEEGM 2024) 会议主题: (主题包括但不限于, 更多主题请咨询会务组苏老师) 节能技术 煤矿工程与技术 能源存储技术 可再生能源 热能与动力工程 能源工程与环境工程 可再生能源技术和系统 能源安全和清洁利用 矿…

1688平台最关键的接口接入实例|获得1688商品详情| 按关键字搜索商品| 按图搜索1688商品(拍立淘)| 获得淘口令真实url

参数说明 通用参数说明 version:API版本key:调用key,测试key:test_api_keyapi_name:API类型[item_get,item_search]cache:[yes,no]默认yes&#xff0c;将调用缓存的数据&#xff0c;速度比较快result_type:[json,xml,serialize,var_export]返回数据格式&#xff0c;默认为jsonl…

前端各框架、优缺点及应用场景

React、Angular和Vue 是目前最流行的选择。以下是这些框架的优缺点、适用场景以及一些常用代码示例&#xff1a; 1. React 优点&#xff1a; 灵活性和高性能大量的第三方库和组件虚拟DOM 提高页面性能 缺点&#xff1a; 学习曲线较陡可能需要额外配置 适用场景&#xff1a; 复…

springboot的maven多模块如何混淆jar包

springboot的maven多模块如何混淆jar包 一.简介二. 示例2.1 基本配置2.2 结果 三. 错误3.1 错误13.2 错误2 四. 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一.简介 …