问题表现在片内FLASH只能写0不能写1,故想到可能是擦除失败。 Debug发现果然HAL_FLASHEx_Erase(&FlashEraseInit,&SectorError);函数返回的FlashStatus始终是HAL_ERROR; 调试发现HAL库中调取FLASH标志位时会出现错误,几经修改都无法避免,甚至复位重烧都不起作用,只有通过STVP才能勉强擦除。 后来上网查阅资料发现有网友...
第四十六章 FLASH模拟EEPROM实验 1)实验平台:正点原子探索者STM32F407开发板 2) 章节摘自【正点原子】...
代码人生 问题表现在片内FLASH只能写0不能写1,故想到可能是擦除失败。 Debug发现果然HAL_FLASHEx_Erase(&FlashEraseInit,&SectorError);函数返回的FlashStatus始终是HAL_ERROR; 调试发现HAL库中调取FLASH标志位时会出现错误,几经修改都无法避免,甚至复位重烧都不起作用,只有通过STVP才能勉强擦除。 后来上网查阅资料...
FlashSet.Sector = 5; //擦除结束页 FlashSet.NbSectors = 6; FlashSet.VoltageRange = FLASH_VOLTAGE_RANGE_3; printf("擦除\r\n"); //调用擦除函数 HAL_FLASHEx_Erase(&FlashSet, &PageError); FlashStatus = FLASH_WaitForLastOperation(1000); //等待上次操作完成 //对FLASH烧写 printf("开始写fl...
(SectorAddress); // 假设GetSector函数用于获取扇区号 EraseInitStruct.NbSectors = 1; // 擦除单个扇区 // 执行擦除操作 status = HAL_FLASHEx_Erase(&EraseInitStruct, &SectorError); // 锁定Flash HAL_FLASH_Lock(); // 检查擦除状态 if (status != HAL_OK) { // 处理擦除失败的情况...
如果(HAL_FLASHEx_Erase(&pEraseInit, &SectorError) != HAL_OK){ /* 页面擦除时出错 */ ...
第三十九章 FLASH 模拟 EEPROM 实验 STM32F4 本身没有自带 EEPROM,但是 STM32F4 具有 IAP(在应用...
因为使用的是 STM32F407 1MB 的片上 Flash, 直接使用 HAL 库的相关 API,需要引用 Incstm32f4xx_hal_flash.h、 Incstm32f4xx_hal_flash_ex.h 这两个头文件; 对接时需要 Flash 的具体参数如,开始地址,操作粒度等,这些参数需要了解清楚,文章前面的图片中也可以读出; ...
(0xFFFFFFFF means that all the sectors have been correctly erased)* * @retval HAL Status */ HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError){HAL_StatusTypeDefstatus=HAL_ERROR;uint32_tindex=0;/* Process Locked */ __HAL_LOCK(&pFlash);/* ...
arm-none-eabi-gcc build/main.o build/stm32f4xx_it.o build/stm32f4xx_hal_msp.o build/stm32f4xx_hal_tim.o build/stm32f4xx_hal_tim_ex.o build/stm32f4xx_hal_uart.o build/stm32f4xx_hal_rcc.o build/stm32f4xx_hal_rcc_ex.o build/stm32f4xx_hal_flash.o build/stm32f4xx_...