stm32---外部中断

一、EXTI       

 STM32F10x外部中断/事件控制器(EXTI)包含多达20个用于产生事件/中断请求的边沿检测器。EXTI的每根输入线都可单独进行配置,以选择类型(中断或事件)和相应的触发事件(上升沿触发、下降沿触发或双边沿触发),还可独立的被屏蔽。总结一句话就是:STM32F10x外部中断/事件控制器(EXTI)一共有20个通道,其中16个通道映射到了GPIO口上。

        在stm32中文参考手册中我们可以找到如下图:

 框图:

 图解:从输入线开始,进入到边沿检测电路,边沿检测电路中可以设置为检测上升沿、下降沿或者双边沿触发,假设是上升沿触发,此时会经过一个或门(或门特点:有1则1),经过或门后可以通过一个与门,然后直接经过脉冲发生器产生事件,或者经过请求挂起寄存器,如果此时已经有一个中断存在,则较低优先级的中断会被挂起,较高优先级的中断会经过与门至NVIC中断控制器。

二、外部中断配置步骤

        要使用外部中断我们就需要先配置它,通常经过这几步:

(1)使能IO口时钟,配置IO口模式为输入

(2)开启AFIO时钟,设置IO口与中断线的映射关系,

RCC_APB2PeriphClockCmd(RCC_APB2periph_AFIO,ENABLE);

GPIO_EXTILineConfig();

(3)配置中断分组(NVIC),使能中断

(4)初始化EXTI,选择触发方式

void EXTI_Init();

    EXTI_InitStruct.EXTI_Line //中断/事件如PA0我们会映射到EXTI0
    EXTI_InitStruct.EXTI_Mode //EXTI 模式,有两种,一个是中断,一个是事件
    EXTI_InitStruct.EXTI_Trigger //EXTI触发方式,如:上升沿触发,下降沿触发,双边沿触发
    EXTI_InitStruct.EXTI_LineCmd //中断使能
    EXTI_Init(&EXTI_InitStruct);

(5)编写中断服务函数

其中5-9是共用一个函数 

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

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

相关文章

HashMap初始化大小

1.参考阿里巴巴开发规范 2.写了个工具类 供大家参考 import java.util.HashMap;/*** 阿里巴巴开发规范* 【推荐】 集合初始化时, 指定集合初始值大小。* 说明: HashMap 使用 HashMap(int initialCapacity) 初始化,如果暂时无法确定集合大小…

计算机二级公共基础知识-2023

计算机基础知识: 计算机的发展: 第一台电子计算机eniac 埃尼阿克 1946 第一台存储程序计算机 edvac 艾迪瓦克 根据电子元器件的发展分类 1.电子管 2.晶体管 3.集成电路 4.超大规模继承电路 按照电脑的用途可以分为 专用计算机 专门用于处理…

OpenCV学习笔记(6)_由例程学习高斯图像金字塔和拉普拉斯金字塔

1 图像金字塔 图像金字塔是图像多尺度表达的一种。 尺度,顾名思义,可以理解为图像的尺寸和分辨率。处理图像时,经常对源图像的尺寸进行缩放变换,进而变换为适合我们后续处理的大小的目标图像。这个对尺寸进行放大缩小的变换过程…

【C++从0到王者】第二十九站:二叉搜索树常见题

文章目录 一、根据二叉树创建字符串二、二叉树的最近公共祖先1.解法一:递归2.解法二:借助栈来寻找路径 三、二叉搜索树与双向链表四、前序与中序构建二叉树五、中序与后序构建二叉树 一、根据二叉树创建字符串 题目链接:力扣第606题&#xff…

Trinitycore学习之在Linux环境上搭建服务器并测试运行

1:准备环境,这里用ubuntu 22.04进行测试,安装环境后为了方便,换源。 注意:这里用的虚拟机,在虚拟机上生成地图信息,地图信息占用内存比较大,我暂时设置磁盘50G进行测试,…

Git学习记录

Contest 一、工作区域二、操作命令2.1 创建仓库2.2 查看仓库状态2.3 从工作区向暂存区添加文件2.3.1 只添加一个文件2.3.2 添加全部文件 2.4 从暂存区向仓库区添加文件2.5 查询日志2.5.1 从当前版本开始查询2.5.2 查看所有日志 2.6 回滚2.6.1 从仓库回滚到工作区2.6.2 取消工作…

c++的this指针

目录 this指针的工作原理 this指针的应用 const修饰的成员函数 this指针的工作原理 在c中同一个类的不同对象,在内存中有不同的储存空间,但是成员函数在内存中只保存了一份,在调用函数处理成员数据时,this指针能保证该成员函数…

2023大数据面试总结

文章目录 Flink(SQL相关后面专题补充)1. 把状态后端从FileSystem改为RocksDB后,Flink任务状态存储会发生哪些变化?2. Flink SQL API State TTL 的过期机制是 onCreateAndUpdate 还是 onReadAndWrite?3. watermark 到底…

《Graph of Thoughts: Solving Elaborate Problems with Large Language Models》中文翻译

《Graph of Thoughts: Solving Elaborate Problems with Large Language Models》- 思维图:用大型语言模型解决复杂的问题 论文信息摘要1. 介绍2. 背景及符号2.1 语言模型和情境学习 3. GoT 框架3.1 推理过程3.2 思想转变3.3 评分和排名思路 4. 系统架构及扩展性4.1…

驱动开发--自动创建节点udev机制的实现过程分析

一,创建设备文件的机制 1,mknod:手动创建设备节点 2,devfs:创建设备节点的逻辑在内核空间,2.5版本后淘汰 3,udev:自动创建设备节点的机制,逻辑在用户空间,…

vue2中使用富文本编辑器tinyMCE全过程

第一步:安装TinyMCE $npm install tinymce5.10.0 -S $npm install tinymce/tinymce-vue3.0.1 -S 第二步:在node_modules中找到tinymce文件夹将内部文件移入pubilc/tinymce文件夹中在index.html文件中引入tinymce.min.js 注意:不把js文件放…

数据结构和算法(5):二叉树

树 向量允许通过下标或秩,在常数的时间内找到目标对象;然而,一旦需要对这类结构进行修改,那么无论是插入还是删除,都需要耗费线性的时间。 列表允许借助引用或位置对象,在常数的时间内插入或删除元素&…