STM32F101xx/STM32F103xx EXTI寄存器详解及固件库介绍

需积分: 44 224 下载量 116 浏览量 更新于2024-08-07 收藏 2.55MB PDF 举报
"EXTI寄存器结构-dama—dmbok数据管理知识体系 STM32 固件库 中文版" STM32微控制器的EXTI(外部中断)寄存器结构是处理外部中断事件的关键部分,这些中断事件通常与微控制器的引脚连接的外部设备或信号有关。EXTI寄存器结构在"stm32f10x_map.h"文件中被定义,其包含了六个主要的寄存器,用于管理和控制中断行为: 1. **中断屏蔽寄存器(IMR)**: 这个寄存器用于屏蔽中断请求。如果IMR中的某个位被设置为1,相应的中断将被禁止,即使外部事件发生,也不会触发中断。 2. **事件屏蔽寄存器(EMR)**: EMR用于控制外部事件的屏蔽。与IMR类似,但EMR主要针对事件模式,而不是中断模式。 3. **上升沿触发选择寄存器(RTSR)**: RTSR允许用户选择哪些外部中断线在检测到正向边缘(例如,从低到高的电平变化)时产生中断。 4. **下降沿触发选择寄存器(FTSR)**: FTSR则是用来配置哪些中断线在检测到负向边缘(如从高到低的电平变化)时触发中断。 5. **软件中断事件寄存器(SWIER)**: 这个寄存器允许软件模拟外部中断事件,使得在没有实际外部事件的情况下,也能触发中断。 6. **挂起寄存器(PR)**: PR用于读取并清除中断状态,当有中断事件发生时,对应的PR位会被置1,通过读写PR,可以检查和清除中断标志。 在外设定义中,EXTI_BASE是在"stm32f10x_map.h"文件中计算得到的,它是基于APB2PERIPH_BASE的地址加上0x0400。EXTI的实例化在不同的编译模式下有所不同,如在Debug模式下,EXTI指针会在"stm32f10x_lib.c"文件中初始化。为了访问EXTI寄存器,"_EXTI"宏需要在"stm32f10x_conf.h"文件中定义。 STM32固件库是一个包含程序、数据结构和宏的集合,旨在简化基于ARM Cortex-M3内核的STM32F101xx和STM32F103xx微控制器的开发工作。库中的每个外设驱动都有标准的API(应用编程接口),遵循严格的ANSI-C标准,使得代码可移植性增强。库还提供了实时错误检测,以提高软件的健壮性,但这些检测可以在最终版本中移除以优化代码大小和执行速度。 STM32固件库虽然提供了一站式的解决方案,但代码大小和执行效率可能不是最优的,对于对这些有严格要求的应用,开发者可以根据具体需求对库函数进行调整。固件库用户手册详细介绍了库的使用、安装以及各个外设的函数描述,是开发STM32应用的重要参考资源。