在STM32 HAL库中,与Flash读写相关的API函数主要包含在stm32f4xx_hal_flash.h(或其他相应系列的头文件)中。常用的函数包括: HAL_FLASH_Unlock(): 解锁Flash编程接口。 HAL_FLASH_Lock(): 锁定Flash编程接口。 HAL_FLASH_Erase(): 擦除Flash扇区或页。 HAL_FLASH_Program():向Flash写入数据。 3. 编写代码以...
#define FLASH_READ_ADDR ((uint32_t)0x0800FC00) // 读取地址 // 写入Flash void FLASH_Write(uint32_t addr, uint32_t data) { HAL_FLASH_Unlock(); HAL_FLASHEx_Erase(&addr, 1); HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, addr, data); HAL_FLASH_Lock(); } // 读取Flash uint32_t FLA...
voidStartReadFlashInit(void){ u16 temp=STMFLASH_ReadHalfWord(FLASH_READ_FLAG);//读取一个16位数printf("ReadNum:%d\r\n",temp);//默认初始化 概率是1/65535if(temp!=858){ temp=858;//STMFLASH_Write,这个函数写一个数据就等价于以下HAL_FLASH_Unlock();//FLASH解锁FLASH_PageErase(FLASH_READ_FLAG...
HAL_Status = HAL_FLASHEx_Erase(&pEraseInit,&PageError);//擦除 if(HAL_Status != HAL_OK) printf("内部FlASH擦除失败!rn"); //step3 写入数据 HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD,addr,Pdata); //step4 锁定FLASH HAL_FLASH_Lock(); } 写入数据前,需解锁并擦除,如上代码所示。 编写...
(3) 针对所需存储器地址(主存储器块或 OTP 区域内)执行数据写入操作; (4) 等待 BSY 位被清零时,表示写入完成。 写flash操作流程图 读flash操作流程 4、代码实现 官方库函数提供了几个接口函数,可对flash进行解锁、上锁、读、写、擦除等操作 stm32f1xx_hal_flash.h ...
在写入或擦除之前调用 HAL_FLASH_Unlock()。在操作完成后调用 HAL_FLASH_Lock()。
2,写入数据代码: HAL_StatusTypeDef flash_write(uint32_t address, uint64_t data) { uint32_t PageError=0; FLASH_EraseInitTypeDef FlashEraseInit;//擦除结构体 HAL_StatusTypeDef ret = HAL_OK; //整页擦除 FlashEraseInit.TypeErase = FLASH_TYPEERASE_PAGES; //擦除类型,页擦除 FlashEraseInit.Pa...
1 首先双击打开keil5软件,如图 2 在软件中新建一个.C和.H文件并加入工程,如图 3 然后在.c文件中编写HAL库的FLASH写数据函数,如图 4 接着是Flash的读取函数,如图 5 随后在.H文件中声明两个函数,如图 6 最后点击编译的快捷键,如图,没有错误和警告就可以使用了。注意事项 注意内部Flash擦写次数是有限制...
(3) 针对所需存储器地址(主存储器块或 OTP 区域内)执行数据写入操作; (4) 等待 BSY 位被清零时,表示写入完成。 写flash操作流程图 读flash操作流程 4、代码实现 官方库函数提供了几个接口函数,可对flash进行解锁、上锁、读、写、擦除等操作 stm32f1xx_hal_flash.h ...
HAL_FLASH_Lock();扇区擦除 EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES; //删除方式 ...