Freertos外部中断

外部中断

外部中断,从名字上看就是由于外部变化而在单片机内产生的中断。

单片机通过GPIO口接收外部数据,STM32F103的所有GPIO口都可以设置为外部中断模式。

外部中断和前一章节NVIC的区别

前面介绍过NVIC控制芯片的所有中断,外部中断也不例外,**但外部中断不是直接受控于NVIC,而是通过一个外部中断/事件控制器EXTI(External interrupt/event controller)与NVIC相连。**而内部中断源比如串口、ADC等是直接和NVIC连接的。

STM32F103共有A-G7组GPIO,每一组有0-15共16个引脚,STM32F103支持19个外部中断/事件请求(互联型系列支持20个),每个GPIO组的相同位置的引脚位于同一个EXTIX(X = 0-15)中,比如所有GPIO的GPIO_PIN_0都在EXTI0中。同一时刻,只能有一个引脚被使能,也就是说加入配置了GPIOA_PIN_0为外部中断/事件,剩余的GPIOB—GPIOG的PIN_0引脚就不能设置为外部中断/事件模式了。

在这里插入图片描述

外部中断的使用

根据上图从左到右推断可知,要想使能引脚的外部中断:
1、设置边缘检测方式,下降沿、上升沿、双边缘。

2、配置软件中断事件寄存器,因为它连接的是或门,所以这个是可选的,不是必须设置的。

3、选择打开中断屏蔽寄存器还是事件屏蔽寄存器。

4、将中断挂起寄存器置位,将信号发送给NVIC。

5、在中断程序里面编写对应程序。若是选择中断事件,则事件发送一个脉冲响应。

参考:
https://blog.csdn.net/wdsclm937256/article/details/125852325

相关推荐

  1. FreeRTOS——中断管理

    2023-12-17 21:50:03       63 阅读
  2. FreeRTOS学习——中断管理

    2023-12-17 21:50:03       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-17 21:50:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-17 21:50:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-17 21:50:03       87 阅读
  4. Python语言-面向对象

    2023-12-17 21:50:03       96 阅读

热门阅读

  1. c#的event使用(1)

    2023-12-17 21:50:03       68 阅读
  2. layui的upload动态数据事件绑定方法非动态渲染

    2023-12-17 21:50:03       69 阅读
  3. 二叉搜索树的简单C++类实现

    2023-12-17 21:50:03       63 阅读
  4. 常用linux命令

    2023-12-17 21:50:03       59 阅读
  5. Android - 调用系统隐式API

    2023-12-17 21:50:03       69 阅读
  6. Vue 项目中使用 Pinia 状态管理详细教程

    2023-12-17 21:50:03       59 阅读
  7. static(二)

    2023-12-17 21:50:03       38 阅读
  8. 我的创作纪念日1024

    2023-12-17 21:50:03       67 阅读