0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32外部中断解决方法

Q4MP_gh_c472c21 来源: 玩转嵌入式 作者:刘小舒 2020-10-20 17:43 次阅读

01

单片机外部中断简介

所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平、低电平)、边沿变化(上升沿、下降沿)等。51单片机有5个中断源,其中有两个是外部中断,分别为INT0和INT1,INT0被分配在P3.2引脚,INT1被分配在P3.2引脚,也即是说如果使用51单片机的外部中断0,则必须将信号接在P3.2上,否则无效。

02

举例说明什么是中断

单片机在执行程序时有两种方式:
查询方式
中断方式
所谓查询方式就是单片机一遍一遍的扫描,查看所监视的目标有没有发生变化,是一种主动式的监视方法,用一个成语可以很客观的描述:守株待兔。
所谓中断方式就是单片机不主动去监视目标,而是目标主动通知单片机状态发生了变化,是一种被动式的监视方法,也可以用一个成语来形容:不速之客。
有一所学校的院墙破了一个洞,为了防止学生半夜跑出去上网,在墙修好之前,学校安排保安每天夜里守在那个洞的旁边监视,这就是守株待兔。到了半夜保安很困想睡觉但是又害怕扣工资,怎么办?这个保安很聪明就在洞口拉了一条绳子把绳子的另一端绑在自己的手腕上,只要有人想出去就会绊倒绳子从而惊醒睡觉的保安,这就是不速之客。这样既不影响保安睡觉,又能捉住半夜出去上网的学生,还能避免保安被扣工资,由此可见通过使用中断大大节省了保安的精力。这就是使用中断的好处。

03

STM32单片机外部中断简介

STM32单片机的每一个GPIO都可以被设置为外部中断输入,根据引脚序号的不同可以将外部中断分为不同的组,分别为PA0-PG0为EXTI0组,以此类推,PA15-PG15为EXTI15组,共16组,并且每一组中同一个时刻只能有一个中断源工作,所以,STM32单片机最多允许同时有16个外部中断。外部中断的分配方式如下表所示:


STM32单片机的外部中断触发方式为边沿触发,即上升沿触发和下降沿触发。

04

STM32外部中断配置步骤

STM32单片机在配置外部中断时可以按照以下步骤来操作:
1.初始化GPIO为输入;
2.开启复用时钟,设置映射关系;
3.设置触发条件;
4.分配中断向量控制器,并使能;
5.编写中断服务函数;

05

STM32外部中断相关的寄存器

1.初始化GPIO时要用到如下寄存器:
APB2ENR:开启GPIO时钟和复用时钟;
CRH:端口配置高寄存器;
CRL:端口配置低寄存器;
EXTICR[0]-EXTICR[3]:外部中断配置寄存器
IMR:中断屏蔽寄存器;
EMR:事件屏蔽寄存器;
FTSR:下降沿触发选择寄存器; RTSR:上升沿触发选择寄存器
ISER[0]-ISER[3]:NVIC中断向量控制器;

来源 | 玩转嵌入式

作者 | 刘小舒

原文标题:STM32如何配置外部中断?

文章出处:【微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44482

    浏览量

    631732
  • STM32
    +关注

    关注

    2264

    文章

    10852

    浏览量

    354169

原文标题:STM32如何配置外部中断?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32CUBEMX(11)--外部中断(EXTI)

    概述 外部中断和事件控制器 (EXTI) 管理外部和内部异步事件 / 中断,并生成相应的事件请求到CPU/ 中断控制器和到电源管理的唤醒请求
    发表于 09-10 15:44

    stm32怎样触发软件中断

    了解STM32中断系统 STM32微控制器具有丰富的中断系统,包括NVIC(嵌套向量中断控制器)和SYSTICK定时器。NVIC可以处理多达
    的头像 发表于 09-02 09:32 477次阅读

    鸿蒙OpenHarmony:【常见编译问题和解决方法

    常见编译问题和解决方法
    的头像 发表于 05-11 16:09 1831次阅读

    STM32中断分组及外部中断的配置过程分享

    STM32中断分组   STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32
    发表于 04-08 08:05

    请问如何区分触发STM32外部中断的GPIO引脚?

    如何区分触发STM32 外部中断的GPIO引脚?
    发表于 04-01 07:07

    外部中断的工作原理 外部中断方式有哪些 为什么要使用外部中断

    外部中断的工作原理是单片机响应外部事件的一种机制** **。
    的头像 发表于 01-28 17:37 3266次阅读

    单片机外部中断和定时器中断的区别和用法

    单片机外部中断和定时器中断在触发来源、应用场景以及功能特点上存在明显差异** **。
    的头像 发表于 01-28 17:35 2752次阅读

    STM32ADC中断的使用注意事项和优化建议

    STM32ADC中断的使用注意事项和优化建议 STM32ADC(模拟数字转换器)是STMicroelectronics开发的一款用于外部模拟信号转换为数字信号的器件。在使用
    的头像 发表于 01-12 15:17 2966次阅读

    STM32无法正常输出PWM信号的原因及解决方法

    无法正常输出PWM信号的问题。本文将探讨STM32无法正常输出PWM信号的原因,并提供解决方法。 一、引脚配置错误 STM32微控制器的每个IO引脚都有多个功能,包括GPIO、UART、SPI、PWM等。正确配置PWM功能的引脚
    的头像 发表于 01-02 17:38 8758次阅读

    stm32中断怎么处理的

    STM32是一款非常强大的微控制器系列,具有丰富的外设和功能。中断STM32中非常重要的部分,能够帮助我们提高系统的响应速度和效率。本文将详细介绍STM32
    的头像 发表于 01-02 17:35 2374次阅读

    stm32f1如何将外部中断关掉hal库

    Layer)来简化芯片和外设的驱动开发。在STM32F1中,外部中断的关闭是通过HAL库中的相应函数来实现的。下面我将详细介绍如何使用HAL库关闭外部
    的头像 发表于 12-22 13:52 3067次阅读

    STM32CubeMX的外部中断的使用

    库的中断处理较为复杂:startup_stm32f103xb.s通过汇编注册了中断处理函数EXTI1_IRQHandler(),在stm32f1xx_it.c中,
    的头像 发表于 11-26 08:00 793次阅读
    <b class='flag-5'>STM32</b>CubeMX的<b class='flag-5'>外部</b><b class='flag-5'>中断</b>的使用

    外部中断误触发的原因分析和解决方法

    今天在写外部中断的程序的时候,发现中断特别容易受到干扰,我把手放在对应的中断引脚上,中断就一直触发,没有停过。经过一天的学习,找到了几个
    的头像 发表于 11-23 17:09 2894次阅读
    <b class='flag-5'>外部</b><b class='flag-5'>中断</b>误触发的原因分析和<b class='flag-5'>解决方法</b>

    外部中断为什么会误触发?

    今天在写外部中断的程序的时候,发现中断特别容易受到干扰,我把手放在对应的中断引脚上,中断就一直触发,没有停过。经过一天的学习,找到了几个
    的头像 发表于 11-23 08:00 1073次阅读
    <b class='flag-5'>外部</b><b class='flag-5'>中断</b>为什么会误触发?

    STM32外部中断大问题

    出现这种情况,明明没有触发外部中断,可是中断服务函数还是不断的++。问题一:电气噪声和抖动电气噪声和抖动是常见的问题,可能会导致STM32外部
    的头像 发表于 11-08 08:00 1855次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>外部</b><b class='flag-5'>中断</b>大问题