STM32F101xx/STM32F103xx FLASH及Option Byte寄存器详解

需积分: 32 46 下载量 181 浏览量 更新于2024-08-10 收藏 4.73MB PDF 举报
"STM32固件库, FLASH寄存器结构, 信而泰bigtao系列选型手册" 本文档主要介绍了基于ARM微控制器的STM32F101xx和STM32F103xx系列的固件函数库,以及其FLASH寄存器结构。STM32F101x系列微控制器的固件库包含了一系列程序、数据结构和宏,用于简化对所有外设的操作,提供驱动描述和应用示例,从而减少用户编程工作量并降低开发成本。 STM32F101xx和STM32F103xx的FLASH寄存器结构由以下部分构成: 1. ACR (FLASH访问控制寄存器): 控制FLASH的访问特性,如预取缓冲器的使能和等待状态的设置,以优化访问速度。 2. KEYR (FPEC密钥寄存器): 用于执行闪存编程和擦除操作的密钥输入,必须正确写入特定的密钥序列才能执行这些操作。 3. OPTKEYR (选择字节密钥寄存器): 同样用于访问选项字节的密钥,防止未经授权的修改。 4. SR (FLASH状态寄存器): 显示闪存操作的状态,如错误标志和操作完成标志。 5. CR (FLASH控制寄存器): 用于配置和控制闪存操作,如编程、擦除和选项字节的写入。 6. AR (FLASH地址寄存器): 存储要访问的闪存地址。 7. OBR (选择字节和状态寄存器): 包含选项字节和一些状态信息,如Boot配置、RDP(readout protection)等级等。 8. WRPR (选择字节写保护寄存器): 用于设置写保护区域,防止某些存储区被意外修改。 选项字节(Option Byte)寄存器包括: - RDP (读出保护): 控制读保护级别,防止芯片被读出。 - USER (用户选择字节): 可由用户定义的选项字节,通常用于存储配置信息。 - Data0 和 Data1: 提供额外的数据存储空间。 - WRP0 到 WRP3 (写保护选择字节): 定义闪存的写保护区域。 固件库遵循严格的ANSI-C标准,提供了一个统一的应用编程接口(API),方便跨开发环境使用。库中的错误检测功能通过实时校验输入值来提高软件的健壮性,但在最终优化的应用程序中,这部分可以被移除以减小程序大小和提高执行效率。 固件库适用于大部分应用场景,但对于有严格代码大小和速度要求的项目,开发者可以参考库函数进行自定义优化。固件库用户手册详细描述了库的结构、使用方法和每个外设的函数,为开发者提供了全面的指导。