当前位置: 首页 > article >正文

STM32F1学习——EXTI

一、外部中断

        stm32中有一种非常常用的中断叫做外部中断,他们就好像门外有人敲门,你去开门处理完事情后再继续做自己的事情一样。

二、STM32的中断

        中断的基本流程图如下,需要中断的资源连接NVIC,NVIC通过配置的中断优先级来判断现在应该给CPU处理哪个中断。这里可以使用医生和病人的例子来理解,CPU是医生他主要负责治病,而NVIC是助理他负责叫号,需要中断的资源则是病人。

        当然stm32的中断众多,可分类为以下10种类:

1、系统中断:例如SysTick滴答定时器中断。

2、外部中断EXTI:由外部硬件触发,如GPIO。

3、定时器中断:例如定时器记时到了。

4、通信中断:UART SPI I2C CAN USB。

5、模拟外设中断:例如ADC或DAC采样完成。

6、DMA中断:例如数据完成中断。

7、电源管理中断:例如PVD电源电压检测器中断。

8、RTC实时时钟中断:在特定时间出发中断。

9、看门狗中断:例如防止系统中断。

10、闪存控制中断:例如闪存写入完成触发中断。

三、STM32中的外部中断——EXTI

        外部中断首先是通过GPIO开始的,通过众多GPIO的读入,到AFIO数据选择器。

        如下图,STM32的GPIO引脚通过AFIO数据选择器连接到EXTI上,如下图会导致GPIO都能触发中断,但是pin值相同的pin不能同时触发中断,因为他们都会标记到EXTI n上,NVIC以为只知道这里有人中断申请,不知道有几个。

        上面的EXIT0-15就会到EXTI的输入线进入EXTI。

        下面就是EXTI的系统逻辑图了,通过检测到外部电路,检测上升或者下降或者都检测产生中断信号,同时STM32还支持软件中断,中间的或门代表着不管是外部中断信号还是软件中断都可以导致中断请求挂起最后至NVIC中断控制器,或者他不需要CPU处理而是触发事件由外设来处理触发脉冲发生器发出脉冲触发其他外设工作

四、代码

        代码的整体逻辑是   开启时钟->初始化GPIO->初始化AFIO->初始化EXTI->初始化NVIC->编写中断程序。

//暂存到时候加

参考

[5-1] EXTI外部中断_哔哩哔哩_bilibili


http://www.kler.cn/a/371152.html

相关文章:

  • 87456
  • 练习LabVIEW第二十四题
  • MLP预售开启,革新去中心化通信生态:智能手机与AI Agent齐上阵
  • B/S架构(Browser/Server)与C/S架构(Client/Server)
  • (史上超级清晰带图解)红黑树的实现--C++
  • 【Hadoop】hadoop的路径分不清?HDFS路径与本地文件系统路径的区别
  • C++中如何获取时间并格式化为字符串?
  • 【域攻防】超级黄金票据食用指南
  • 快速遍历包含合并单元格的Word表格
  • 信息安全数学基础(33)群
  • 使用DeepLabV3实现植叶病害检测
  • 蓝桥杯基本算法~~~一维/二维前缀和问题
  • 【ComfyUI】手动安装部署ComfyUI的运行环境
  • QML旋转选择器组件Tumbler
  • 第十一章 Shiro会话管理和加密
  • 《Web性能权威指南》-WebRTC-读书笔记
  • 【GL08】STM32--ADC/DAC
  • spring-boot(入门)
  • 深入探索:深度学习在时间序列预测中的强大应用与实现
  • 编程解决有趣的智力题
  • 17、电话号码的字母组合-cangjie
  • 中阳智能投资系统:量化科技引领未来投资之路
  • gbase8s之spring框架用druid中间件报语法错误
  • Linux安装es和kibana
  • git下载和配置
  • 探索Python与Excel的无缝对接:xlwings库的神秘面纱