写一个STM32读写flash代码
时间: 2023-03-30 10:00:41 浏览: 123
stm32读写Flash
5星 · 资源好评率100%
可以的,以下是一个简单的STM32读写flash的代码示例:
#include "stm32f4xx.h"
#define FLASH_START_ADDR x08000000 // Flash起始地址
#define FLASH_SECTOR_SIZE x400 // Flash扇区大小
void write_flash(uint32_t addr, uint32_t data)
{
FLASH_Unlock(); // 解锁Flash
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); // 清除Flash标志位
FLASH_EraseSector(FLASH_Sector_7, VoltageRange_3); // 擦除扇区
FLASH_ProgramWord(addr, data); // 写入数据
FLASH_Lock(); // 锁定Flash
}
uint32_t read_flash(uint32_t addr)
{
return *(uint32_t*)addr; // 读取数据
}
int main(void)
{
uint32_t data = x12345678;
write_flash(FLASH_START_ADDR + FLASH_SECTOR_SIZE * 6, data); // 写入数据到第7个扇区
uint32_t read_data = read_flash(FLASH_START_ADDR + FLASH_SECTOR_SIZE * 6); // 从第7个扇区读取数据
while(1);
}
阅读全文