GD32F405 内部flash读写
时间: 2024-09-12 10:11:01 浏览: 64
GD32F405是一款基于Arm Cortex-M4内核的微控制器,它内置了Flash存储器,用于长期保存程序代码。关于GD32F405的内部Flash读写操作,以下是基本步骤:
1. **初始化**:首先需要配置Flash相关的寄存器,如FLASH_ACR(Access Control Register),设置Flash的启动地址、奇偶校验模式等。
```c
RCC_APB1PeriphClockCmd(RCC_APB1Periph_FLASH, ENABLE); // 启动Flash时钟
FLASH_SetLatency(FLASH_Latency_5); // 设置访问延迟时间
```
2. **读取数据**:使用`FLASH_ReadData()`函数从Flash读取数据,该函数通常会返回读取到的数据字节。
```c
uint32_t data;
FLASH_Status status = FLASH_ReadData((uint32_t)0x80000000, &data, 1); // 从地址0x80000000开始读取1字节
if (status == FLASH_SUCCESS) {
// 数据已成功读取
}
```
3. **写入数据**:使用`FLASH_WriteWord()`, `FLASH_Erase_sector()`等函数将数据写入Flash。先要确保目标区域已擦除。
```c
FLASH_Status erase_status = FLASH_EraseSector((uint32_t)0x80000000);
if (erase_status == FLASH_COMPLETE) {
FLASH_Status write_status = FLASH_WriteWord((uint32_t)0x80000000, 0xDEADBEEF);
if (write_status == FLASH_SUCCESS) {
// 数据已成功写入
}
}
```
阅读全文