stm32f103flash读写江科大
时间: 2025-02-16 18:17:29 AIGC 浏览: 65
### STM32F103 Flash 读写教程
对于STM32F103系列单片机而言,在执行Flash读写操作时,需要遵循特定的流程以确保数据的安全性和可靠性。该类单片机具备内部Flash存储器,允许用户程序对其进行编程、擦除以及读取操作。
#### 初始化设置
为了准备Flash的操作,首先要解锁Flash访问权限并配置必要的参数:
```c
#include "stm32f1xx_hal.h"
// 解锁Flash接口以便修改
HAL_FLASH_Unlock();
// 清除所有待处理错误标志位
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR |
FLASH_FLAG_PGERR);
```
#### 数据写入到Flash
当向指定地址写入新数据前,需先确认目标位置已被清零;如果未被清零,则应先行擦除此页再继续后续步骤。下面是一个简单的例子展示如何把一个字节的数据存放到给定的位置:
```c
uint32_t address = ADDR_FLASH_PAGE_128; // 定义要写的起始地址
uint64_t data = 0xAAAAAAAA;
if (HAL_FLASH_Program(TYPEPROGRAM_DOUBLEWORD, address, data) == HAL_OK){
// 成功完成双字编程
} else {
// 编程失败后的处理逻辑
}
```
#### 从Flash中读取数据
一旦数据已经成功保存至Flash内存区域之后,就可以像常规RAM一样直接通过指针或数组索引来获取这些信息了:
```c
uint64_t readData;
readData = *(__IO uint64_t*)address;
```
#### 锁住Flash防止意外更改
最后一步是在结束任何类型的Flash操作后重新锁定它,从而保护其中的内容免受无意间改变的影响:
```c
HAL_FLASH_Lock();
```
上述代码片段展示了基本的Flash读写方法[^1]。值得注意的是,实际应用过程中还需要考虑更多细节问题,比如页面大小限制、电源电压稳定性等因素。
阅读全文
相关推荐











