STM32F101xx/STM32F103xx EXTI寄存器详解及应用
需积分: 26 197 浏览量
更新于2024-08-08
收藏 1.93MB PDF 举报
"EXTI寄存器结构-基于ir-uwb雷达自相关的呼吸和心跳速率测量"
在STM32F1x系列微控制器中,EXTI(External Interrupt)模块是用来处理外部中断事件的关键部分。EXTI寄存器结构的详细解析如下:
EXTI寄存器结构在"stm32f10x_map.h"文件中被定义,包含以下几个部分:
1. IMR(Interrupt Mask Register,中断屏蔽寄存器):用于控制各个外部中断线的中断请求是否被屏蔽。如果某个位被设置为1,则对应的中断线的中断请求将被屏蔽,不会引起CPU响应。
2. EMR(Event Mask Register,事件屏蔽寄存器):与IMR类似,但用于控制外部事件,而非中断。设置为1的位表示对应事件被屏蔽。
3. RTSR(Rising Edge Trigger Selection Register,上升沿触发选择寄存器):配置哪些外部中断线在发生上升沿时能够触发中断。
4. FTSR( Falling Edge Trigger Selection Register,下降沿触发选择寄存器):用于设定哪些外部中断线在下降沿时能够触发中断。
5. SWIER(Software Interrupt Event Register,软件中断事件寄存器):允许软件设定中断事件,触发中断处理。
6. PR(Pending Register,挂起寄存器):显示当前哪些中断线的中断请求尚未被服务,即中断状态。
EXTI的基地址是在APB2外设基地址上加上0x0400计算得出的,即EXTI_BASE = (APB2PERIPH_BASE + 0x0400)。在不同的模式下,如Debug模式,EXTI的指针会在"stm32f10x_lib.c"文件中初始化,以便于访问EXTI寄存器。定义 `_EXTI` 在"stm32f10x_conf.h"文件中是必要的,以便编译器知道EXTI的地址。
STM32F1x固件函数库提供了对外设的便捷访问,包括EXTI。库中的API(Application Programming Interface)对外设驱动进行了标准化,使得开发者可以更简单地使用每个外设的功能,而无需深入理解底层细节。库函数符合"Strict ANSI-C"标准,确保代码的可移植性,并且遵循MISRA-C2004编码规范以提高软件质量。实时错误检测通过校验输入值实现,增强了软件的健壮性,但在最终的应用程序中,为了优化代码大小和执行速度,可以考虑去除这部分检查。
STM32F1x固件库适用于各种应用,直接使用可满足大部分需求。但对于有严格代码大小和速度要求的项目,可以参考库中的驱动程序进行定制化修改,以适应特定需求。整个库的使用和功能在用户手册中有详尽的描述,包括设置指南、架构解析以及每个外设的函数描述。
1562 浏览量
149 浏览量
2022-09-23 上传
2021-09-30 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情

赵guo栋
- 粉丝: 43
最新资源
- PB操作权限动态控制实现
- 经典Shell编程指南:Linux与UNIX详解
- C#经典教程:从入门到高级
- Ruby入门与Rails实践:理解关键语言和选择框架挑战
- 探索Prototype.js 1.4版:非官方开发者指南与Ruby类库灵感
- 软件需求分析关键要素详解
- Effective STL:深入理解并高效使用STL
- 使用Ajax实现三级联动下拉菜单详细教程
- Linux内核0.11完全注释 - 深入理解操作系统工作机理
- C++实现词法分析器
- ASP.NET 2.0+SQL Server实战:酒店与连锁配送系统开发
- 植物生长模型:L-系统在植物发育可视化中的应用
- Oracle BerkeleyDB内存数据库入门
- 遗传算法驱动的工程项目网络计划优化与多任务调度研究
- 敏捷开发实战:从JAVA到Essential Skills
- JSP与Oracle数据库编程实战指南