【蓝桥杯嵌入式】四、各种外设驱动(三)NVIC中断程序通用步骤——分析与配置

        由于内容比较多,为了更详细的说明,我也会花比较多的时间研究。而为了及时更新,我会把有些文章分成几个部分,谢谢大家理解 。

目录

一、需求分析

1、需要的外设资源分析:

 2、外设具体分析:

3、软件分析

二、软件配置

1、复制项目流程:

2、中断配置

a、GPIO模式配置

b、NVIC配置

三、编写代码:【蓝桥杯嵌入式】四、各种外设驱动(三)NVIC中断程序通用步骤——中断服务程序


一、需求分析

使用中断方式检查按键是否按下,设置不同优先级,介绍通用的中断处理步骤。

1、需要的外设资源分析:

        4个KEY信号引脚,8个LED控制引脚(引脚的配置与前面的文章相同,这里不再赘述)

 2、外设具体分析:


       根据STM32G4手册,该芯片的中断有很多,这里要用到的是外部中断。中断的知识点很多教程和教材上都有详细介绍,这里只针对比赛时如何快速准确的使用中断做讲解。

        将按键引脚设置为外部中断信号引脚,上跳沿触发。KEY1设置为较高优先级,KEY2设置为较低优先级。使用KEY3产生软中断,模拟KEY1按下。所以一共要开启三个外部中断EXTI0\1\2。

        因为这里的按键是低电平有效,所以设置为下跳沿引发中断。

3、软件分析

        在中断回调函数中编写代码,当KEY2按下时所有LED点亮,KEY1按下时熄灭LED1~4(为了验证正确性,这里延时1s)。KEY3按下后会产生软中断(这个一般考试时用不到,感兴趣的可以看HAL文档),出发EXTI0中断。

二、软件配置

        新建项目"EXTI_Demo",建议新建练习一下,或者可以直接复制“dev_KEY_Demo”项目。

1、复制项目流程:

a、复制整个“dev_KEY_Demo”文件夹

b、改名,文件夹名称和  .ioc  文件名称要一致

c、删除文件/夹

d、打开  .ioc  文件,更改时钟配置。

e、更改配置(在下面:2、中断配置),生成文件;可以看到代码没有改动。

f、引入外部 .c (如led.c)文件,完成项目复制。

2、中断配置

a、GPIO模式配置

        打开 .ioc 文件,左键PB0引脚,选择GPIO_EXTI0模式。

        右击PA0引脚,改名字为KEY4。

        设置为下跳沿触发中断,上拉。

其余两个做同样处理,结果如图:

b、NVIC配置

 先将Time base: System tick timer(基础时钟:系统滴答计时器)的优先级设置为0:

4位用于抢占优先级,EXTI0设置为较高优先级;EXTI1设置为较低优先级2;EXTI2设置为2。

配置完成后生成代码。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

协议-http协议-基础概念04-长短连接-重定向-cookie-缓存-代理

参考来源: 极客时间-透视HTTP协议(作者:罗剑锋); 01-长短连接 HTTP 协议最初(0.9/1.0)是个非常简单的协议,通信过程也采用了简单的“请求 - 应答”方式。 它底层的数据传输基于 TCP/IP,每次发…

JVM 面试——G1和ZGC的区别

ZGC是一款JDK 11中新加入的具有实验性质的低延迟垃圾收集器ZGC的目标主要有4个 支持TB量级的堆。我们生产环境的硬盘还没有上TB呢,这应该可以满足未来十年内,所有JAVA应用的需求了吧。最大GC停顿时间不超10ms。目前一般线上环境运行良好的JAVA应用Minor …

Node携手MongoDB探险旅行⛏️

Node携手MongoDB探险旅行⛏️ 本篇文章,学习记录于:尚硅谷🎢 文章简单学习总结:如有错误 大佬 👉点. 本篇不适合纯新手,因为本人已经使用很多数据库,很多数据库概念…就不会进行解释&#xff…

政务网站安全合规之道,云监测提供优质监测解决方案

近年来,国家对于网站安全风险的问题重视程度不断提升,持续加强对网站安全的监管力度。特别是政务网站,承载着越来越重要的核心应用和数据,与普通网站相比更容易遭到来自互联网的攻击。 攻击者为了破坏政务形象、干扰政务工作秩序或…

个人职业规划的制定方法

在竞争激烈的职场环境中,一个明确的职业规划对于个人发展至关重要。本文将探讨我的个人职场规划,包括短期和长期目标,以及实现这些目标所需的策略和行动。 一、自我评估 1.1 职业兴趣:我对市场营销和数据分析领域充满热情&#xf…

【React】AntV G6 - 快速入手

环境 react: ^18next: 14.1.0antv/g6: ^4.8.24 安装 npm install antv/g6# or pnpm add antv/g6# or yarn add antv/g6使用 模拟数据 const data {nodes: [ // 节点信息{id: "node1",data: {name: "Circle1"}},{id: "node2",d…

【JavaScript 漫游】【034】AJAX

文章简介 本篇文章为【JavaScript 漫游】专栏的第 034 篇文章,对浏览器模型的 XMLHttpRequest 对象(AJAX)的知识点进行了总结。 XMLHttpRequest 对象概述 浏览器与服务器之间,采用 HTTP 协议通信。用户在浏览器地址栏键入一个网…

面试问答之MySQL数据库进阶

文章目录 🐒个人主页:信计2102罗铠威🏅JavaEE系列专栏📖前言:🎀 MySQL架构🐕数据库引擎🐕 InnoDB存储存储引擎🐕MYISAM 🏨索引🐕哪些情况需要创建…

Vue3.0里为什么要用 Proxy API 替代 defineProperty API

一、Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象 为什么能实现响应式 通过defineProperty 两个属性,get及set get 属性的 getter 函…

阿里云幻兽帕鲁Palworld服务器4核16G和8核32G配置价格表

2024阿里云幻兽帕鲁专用服务器价格表:4核16G幻兽帕鲁专用服务器26元一个月、149元半年,默认10M公网带宽,8核32G幻兽帕鲁服务器10M带宽价格90元1个月、271元3个月。阿里云提供的Palworld服务器是ECS经济型e实例,CPU采用Intel Xeon …

新版AndroidStudio的Gradle窗口显示task list not built 问题解决

在使用新版AndroidStudio时,会出现,Task List not built 的问题。如果你记得task的名字,当然可以 直接通过命令 gradle taskname 或者 ./gradlew taskName直接执行即可,但是若是记不住,还是把这个任务构建处理比较好用…

数据结构 之 链表LinkedList

目录 1. ArrayList的缺陷: 2. 链表: 2.1 链表的概念及结构: 3. 链表的使用和模拟实现: 3.1 构造方法: 3.2 模拟实现: 4. 源码分享: 在我学习顺序表之后,我就立马开始了链表的学…

专业138+总分400+南航南京航空航天大学878考研经验电子信息与通信工程,真题,大纲,参考书

经过一年的复习,顺利被南京航空航天大学录取,初试专业课878数字电路和信号与系统138,总分400,回看这一年的复习,从择校到考研备考经历了很多,也有很多想和大家分享的复习经验,希望对大家复习有所…

MateBook X Pro 2019款 集显(MACHR-WX9)工厂模式原装出厂Win10系统 带F10智能还原

HUAWEI华为MateBook X笔记本电脑原厂Windows10系统恢复工厂包 适用型号:MACHR-WX9、MACHR-W29、MACHR-W19 链接:https://pan.baidu.com/s/1x6vvCxmEgM2Oa_Uom8r9Iw?pwd588m 提取码:588m 系统自带F10一键智能还原功能、自带所有驱动、系统…

【C++】反向迭代器仿函数模板进阶

反向迭代器&仿函数&模板进阶 一,反向迭代器1. 什么是反向迭代器2. 模拟实现3. 如何使用 二,仿函数1. 仿函数的概念2. 仿函数的用法 三,模板1. 非类型模板参数2. 模板的特化2.1 特化概念2.2 函数模板特化2.3 类模板特化2.3.1 全特化2.…

【Java设计模式】十五、命令模式

文章目录 1、命令模式2、案例3、总结 1、命令模式 餐厅点餐: 创建一个厨师对象,让服务员对象调用厨师对象中的方法进行点餐通知,当后面厨师换人,服务员类的代码也要修改,耦合 不符合开闭。理想状态:服务员…

java SSM农产品订购网站系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM农产品订购网站系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采…

Asp .Net Web Forms 系列:配置图片防盗链的几种方法

通过 URL Rewrite Module 组件 URL Rewrite Module 是一个用于在 ASP.NET Web Forms 或其他基于 IIS 的 Web 应用程序中重写 URL 的强大工具。这个模块允许你将复杂的、不易于记忆或不利于搜索引擎优化的 URL 转换为更简洁、更友好的格式。通过 URL 重写,你可以提高…

Opencv 插值方法 总结

一、概括 面试的时候问到了一个图,就是如何将一个算子放缩??我第一反应是resize(),但是后来我转念一想,人家问的是插值方式,今天来总结一下 最邻近插值法原理分析及c实现_最临近插值法-CSDN博…

050-WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒

050-WEB攻防-PHP应用&文件包含&LFI&RFI&伪协议编码算法&无文件利用&黑白盒 #知识点: 1、文件包含-原理&分类&危害-LFI&RFI 2、文件包含-利用-黑白盒&无文件&伪协议 演示案例: ➢文件包含-原理&分类&am…