stm32外部中断实验报告_STM32实例外部中断实验

这篇博客详细介绍了STM32F10x的外部中断EXTI,包括EXTI的结构、工作原理、配置步骤和实际应用。通过外部中断控制LED,利用按键实现中断触发,读者将学习到如何设置中断触发方式、中断线路映射以及编写中断服务函数。
摘要由CSDN通过智能技术生成

    上一篇文章我们介绍了 STM32F10x 的中断,这次我们就来学习下外部中断。本文中要实现的功能与按键实验一样,即通过按键控制 LED,只不过这里采用外部中断方式进行控制。学习时可以参考《STM32F10x 中文参考手册》-9 中断和事件章节。

外部中断介绍    

  • EXTI 简介

    STM32F10x 外部中断/事件控制器(EXTI)包含多达 20 个用于产生事件/中断请求的边沿检测器。EXTI 的每根输入线都可单独进行配置,以选择类型(中断或事件)和相应的触发事件(上升沿触发、下降沿触发或边沿触发),还可独立地被屏蔽。

  • EXTI 结构框图

    EXTI 框图包含了 EXTI 最核心内容,掌握了此框图,对 EXTI 就有一个全局的把握,在编程的时候思路就非常清晰。

7a30a9e296e1187663f52c37b5701694.png

    从图中可以看到,有很多信号线上都有标号 9 样的“20”字样,这个表示在控制器内部类似的信号线路有 20 个,这与 STM32F10x 的 EXTI 总共有20 个中断/事件线是吻合的。因此我们只需要理解其中一个的原理,其他的 19个线路原理都是一样的。

    EXTI 分为两大部分功能,一个产生中断,另一个产生事件,这两个功能从

硬件上就有所差别,这个在框图中也有体现。从图中标号 3 的位置处就分出了两条线路,一条是 3-4-5 用于产生中断,另一条是 3-6-7-8 用于产生事件。

    下面我们就来介绍下这两条线路:

(1)首先看下产生中断的这条线路(1-2-3-4-5)

    1.标号 1 为输入线,EXTI 控制器有 20 个中断/事件输入线,这些输入线可

以通过寄存器设置为任意一个 GPIO,也可以是一些外设的事件,这部分内容我们会在后面专门讲解。输入线一般是存在电平变化的信号。

    2.边沿检测电路,EXTI 可以对触发方式进行选择,通过上升沿触发选择寄

存器和下降沿触发选择寄存器对应位的设置来控制信号触发。边沿检测电路以输入线作为信号输入端,如果检测到有边沿跳变就输出有效信号 1 给红色框 3 电路,否则输出无效信号 0。而上升沿和下降沿触发选择这两个寄存器可以控制需要检测哪些类型的电平跳变过程,可以是只有上升沿触发、只有下降沿触发或者上升沿和下降沿都触发。

    3.其实就是一个或门电路,一端输入信号线由标号 2 提供,一端由软件中断事件寄存器提供,只要有一个为有效信号 1,标号 3 电路则输出有效信号 1,否则为无效信号 0。软件中断事件寄存器允许我们使用软件来启动中断/事件线,这个在某些地方非常有用。

    4.其实就是一个与门电路,一端输入信号线由标号 3 电路输出提供,一端由中断屏蔽寄存器提供,只有当两者都为有效信号 1,标号 4 电路才会输出有效信号 1,否则输出无效。这样我们就可以简单的控制中断屏蔽寄存器来实现是否产生中断的目的。当我们把中断屏蔽寄存器设置为 1 时,标号 4 输出就取决于标号3电路的输出。标号3电路输出的信号会被保存到挂起寄存器内,如果确定标号3 电路输出为 1 就会把挂起寄存器对应位置 1。

    5.将挂起寄存器内容输入到NVIC 内,从而实现系统中断事件的控制。

(2)最后我们再来看下产生事件这条线路(1-2-3-6-7-8),前面 1-2-3

都是一样的,只是在 3 的输出后产生分歧。

    6.其实就是一个与门电路,一端来至标号 3 电路的输出信号,一端来至事件屏蔽寄存器,只有两者都为有效电平 1,标号 6 输出才有效。当事件屏蔽寄存器设置为 0 时,不管标号3 电路输出为 1 还是 0,标号 6 电路输出均为 0。当事件屏蔽寄存器设置为 1 时,标号 6 电路输出取决于标号 3 电路输出,这样就可以简单的控制事件屏蔽寄存器来实现是否产生事件的目的。

    7.脉冲发生器电路,其输入端只与标号 6 电路输出有关,标号6输出有效,脉冲发生器才会输出一个脉冲信号。

    8.脉冲信号,由标号 7 脉冲发生器产生,是事件线路的终端,此脉冲信号可供其他外设电路使用,比如定时器、ADC 等。这样的脉冲信号通常用来触发定时器、ADC 等开始转换。

    从上面 EXTI 框图可以看出,中断线路最终会输入到 NVIC 控制器中,从而会运行中断服务函数,实现中断内功能,这个是软件级的。而事件线路最后产生的脉冲信号会流向其他的外设电路,是硬件级的。在 EXTI 框图最顶端可以看到ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值