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

STM32F0实战:基于HAL库开发【2.3】

9.2.1 事件线概述

在EXTI中引入了“事件”这一概念。与中断相比,事件的产生不会中断主程序的进程,但可以让处于功耗管理模式下的微控制器唤醒。EXTI管理的异步事件和中断包括以下两类。

·来自引脚的外部中断/事件:这类中断和事件大多与GPIO相关联,涉及端口引脚的输入或输出,如GPIO端口电平变化、电源电压变化、RTC报警输出及时间戳输入、比较器输出等,引脚上的电平变化可以引发中断,也可以产生相关事件用于唤醒CPU。

·来自外设的唤醒事件:这类事件是由部分通信外设(USART、I2C、CEC)在系统处于运行模式或允许唤醒的停止模式时产生的,它们同样可以用于唤醒CPU。

EXTI管理的每一种中断和事件称为事件线。EXTI总计管理着32个事件线(区别于NVIC管理的32个外部中断),其中包含23个外部事件线和9个内部事件线。事件线统一由NVIC管理,多个事件线可以占用同一个中断向量号。EXTI管理的事件线具体详见表9-3。

表9-3 EXTI管理的事件线

9.2.2 事件线的控制逻辑

每个事件线(EXTI0~EXTI31)都有专用的中断屏蔽寄存器EXTI_IMR和专用的事件屏蔽寄存器EXTI_EMR,用于配置某一个线路上的事件/中断请求。对于外部事件/中断(EXTI0~EXTI17、EXTI19~ EXTI22和EXTI31),有相应的边沿触发选择寄存器EXTI_RTSR和EXTI_FTSR,用于选择触发的有效边沿。

EXTI管理的外部事件/中断还有相应的软件中断事件寄存器EXTI_SWIER和挂起寄存器EXTI_PR,软件中断事件寄存器用于软件生成相应事件或中断,而挂起寄存器则用于查询发生了哪类外部事件或中断。当某一个外部中断或事件发生时,该中断可以将相应的挂起位持续置位,直至软件将挂起位清除。GPIO口连接到16个外部中断/事件线,如图9-4所示,外部事件/中断的控制逻辑如图9-5所示。

相比外部事件或中断,内部事件线总是上升沿触发,所以不需要设置触发边沿,也没有特定的挂起位。另外,内部事件线只有在停止模式下才被使能,当系统处于运行模式时将会自动禁止内部各线的功能。

9.2.3 事件线的配置方法

通过配置事件线可以产生中断或事件,具体方法如下:

1)产生外部中断:根据需要检测的边沿,设置2个边沿触发选择寄存器,并且在中断屏蔽寄存器的相应位写1以允许该中断请求。当外部中断线上发生了预期的边沿时将产生一个中断请求,与之对应的挂起位也随之被置1,对挂起寄存器的相应位写1可以清除该挂起位。另外,还需要配置与该EXTI线对应的NVIC中断通道的使能位,使该中断线的中断请求可以被正确地响应。

2)产生外部事件:根据需要的边沿检测,设置2个边沿触发选择寄存器,同时在事件屏蔽寄存器的相应位写1以允许该事件请求。当事件线上发生了期待的边沿时将产生一个事件请求脉冲,但对应的挂起位不会被置1。

3)软件产生外部中断/事件:对于外部中断线,一个中断/事件请求也可由软件对相应软件中断事件寄存器的相应位写1来产生。

4)产生内部中断/事件:对于内部线,触发沿都为上升沿,同样可以将中断或事件屏蔽寄存器的相应位写1来使能该中断或事件,但内部中断线没有相应的挂起位。这里需

http://www.jsqmd.com/news/299634/

相关文章:

  • 工信部教考中心《系统可靠性工程师(高级)》开课通知
  • 机房U位管理别瞎忙!这套系统让运维效率翻倍
  • 告别设备束缚 RetroArch-web 把童年游戏装进口袋,cpolar解锁全场景游玩
  • 使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--Pytest框架钩子函数
  • 使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 43--添加allure测试报告显示信息和其他封装方法
  • 云端VS本地 RFID资产管理系统怎么选?优缺点大揭秘
  • Transactional失效的情况总结
  • Spark GIS:分布式计算框架下的空间数据分析
  • 2023年NOC大赛创客智慧编程赛项Python复赛模拟题(一)
  • 2023年NOC大赛创客智慧编程赛项Python复赛模拟题(二)
  • Python大数据项目推荐:基于Hadoop+Spark电商用户行为分析毕设 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
  • Flutter for OpenHarmony 剧本杀组队App实战22:快速匹配功能实现
  • 【计算机毕设选题】基于Spark的双十一美妆数据可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
  • Reap
  • 信号处理仿真:滤波器设计与仿真_23.滤波器设计与仿真在雷达系统中的应用
  • 信号处理仿真:滤波器设计与仿真_24.滤波器设计与仿真在控制工程中的应用
  • 性价比对比视角|四款热门机型性价比深度拆解
  • 中国智能体应用现状与企业实践
  • 信号处理仿真:滤波器设计与仿真_18.实时信号处理仿真
  • 大模型应用文本理解OpenAI使用入门篇
  • 亲测好用自考必看TOP8AI论文软件测评
  • 五大智能建站工具真实测评:不画饼,真能上线那种
  • 从FT到DFT
  • Excel精准匹配的利刃:EXACT函数实战教程——从大小写判断到多条件统计
  • Redis中的Lua使用
  • 智能车辆检索系统解析
  • 人脸比对技术助力破案
  • 深入解析:GIT 实战命令操作大全,代码变动,推动,修改备注,撤销(篇幅一)
  • @PropertySource@ImportResource@Bean
  • SpringBoot中多配置文件和外部配置文件加载顺序