STM32F103 内部FLASH 保存数据的代码
时间: 2024-10-10 11:01:28 浏览: 37
STM32F103单片机内部Flash主要用于长期存储程序代码和配置数据。在C语言中,我们可以使用HAL库提供的函数来操作Flash。下面是一个简单的示例,展示如何向Flash写入数据:
```c
#include "stm32f1xx_hal.h"
void WriteToFlash(uint8_t *data, uint32_t address, uint16_t length) {
HAL_FLASH_Unlock(); // 解锁Flash,因为写操作需要
for (uint16_t i = 0; i < length; i++) {
HAL_FLASH_Program(FLASH_TYPEPROGRAM, address + i, data[i]); // 写入每个字节
}
HAL_FLASH_Lock(); // 写完后锁定Flash,防止意外修改
// 检查写入是否成功
if (HAL_FLASH_GetError() == HAL_FLASH_ERROR_NONE) {
printf("Data written to Flash at %08X successfully.\n", address);
} else {
printf("Failed to write to Flash with error %d.\n", HAL_FLASH_GetError());
}
}
```
在这个例子中,`data`是要写入Flash的数据指针,`address`是Flash的起始地址,`length`是数据的长度。
注意,这只是一个基本的写入过程,实际应用中可能还需要处理错误处理、分块写入等细节,并且解锁和上锁的操作应该谨慎,避免在不必要的时候影响其他部分的代码执行。
阅读全文