第四十六章 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...
STM32F407片内FLASH擦除失败问题 代码人生 问题表现在片内FLASH只能写0不能写1,故想到可能是擦除失败。 Debug发现果然HAL_FLASHEx_Erase(&FlashEraseInit,&SectorError);函数返回的FlashStatus始终是HAL_ERROR; 调试发现HAL库中调取FLASH标志位时会出现错误,几经修改都无法避免,甚至复位重烧都不起作用,只有通过STVP...
(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){ /* 页面擦除时出错 */ ...
因为使用的是 STM32F407 1MB 的片上 Flash, 直接使用 HAL 库的相关 API,需要引用 Incstm32f4xx_hal_flash.h、 Incstm32f4xx_hal_flash_ex.h 这两个头文件; 对接时需要 Flash 的具体参数如,开始地址,操作粒度等,这些参数需要了解清楚,文章前面的图片中也可以读出; ...
2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子 第三十九章 ...
Q11:综合实验启动界面,提示:ExFlashQ11.1,然后开发板又插了仿真器(JLINK/STLINK/ULINK等IO口,导致通信异常,解决办法:1,拔掉仿真器,这个方法最简单,直接把灰色排线从开发板上拔了(见图Q11.1,然后按复位就可以正常了。2,打开综合实验(路径:程序源码→标准例程-寄存/库函数版本→59综合测试实验)Q12:综合实Q12:...
解锁的时候,它对FLASH_KEYR寄存器写入两个解锁参数,上锁的时候,对FLASH_CR寄存器的FLASH_CR_LOCK位置1。 43.4.2.设置操作位数及页擦除¶ 解锁后擦除扇区时可调用FLASH_EraseSector完成,见代码清单44_3。 代码清单 44‑3 擦除扇区¶ /** * @brief Perform a mass erase or erase the specified FLASH ...