[STM32F4] STM32F40x/STM32F41x微控制器中的EEPROM模拟(AN3969应用笔记)

[复制链接]
 楼主| zhouyou99 发表于 2025-7-19 22:51 | 显示全部楼层 |阅读模式
从此官网下载的示例,无法直接用于STM32CubeIDE。
奇怪的是,当前函数不再包含错误控制。
例如
FLASH_Status FLASH_EraseSector(uint32_t FLASH_Sector, uint8_t VoltageRange)

来自STM32CubeIDE2017年的代码,文件:stm32f4xx_hal_flash_ex.c:FLASH状态
void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange)
在比较代码时,我意识到代码量出现了大幅缩减,是否有必要放弃原先存在的错误代码?

公羊子丹 发表于 2025-7-23 07:24 | 显示全部楼层
我也用过 AN3969,感觉这个例程确实有点老,很多 HAL API 都更新过了。
周半梅 发表于 2025-7-23 07:26 | 显示全部楼层
现在 HAL 库里确实把 FLASH_Status 改掉了,错误处理都用 HAL_OK、HAL_ERROR 了。
帛灿灿 发表于 2025-7-23 07:28 | 显示全部楼层
其实 FLASH_Erase_Sector 返回值是 HAL_StatusTypeDef,比原来灵活点。
童雨竹 发表于 2025-7-23 07:30 | 显示全部楼层
如果你要做稳健点,最好在调用 HAL 函数后自己判断 HAL_StatusTypeDef。
万图 发表于 2025-7-23 07:32 | 显示全部楼层
我觉得老例程里的错误检测可以参考一下,自己补到新版 HAL API 外面去也行。
Wordsworth 发表于 2025-7-23 07:34 | 显示全部楼层
CubeIDE 新项目生成的 HAL_FLASH 已经默认没有老 FLASH_Status 枚举了。
Bblythe 发表于 2025-7-23 07:36 | 显示全部楼层
其实模拟 EEPROM 最重要还是要做好写次数均衡,错误码倒是其次。
Pulitzer 发表于 2025-7-23 07:38 | 显示全部楼层
如果追求健壮性,可以自己封装一层擦除和写的返回值,再加重试逻辑。
Uriah 发表于 2025-7-23 07:40 | 显示全部楼层
AN3969 那套状态检查就是给 SPL 写的,放 HAL 里直接用会冲突。
Uriah 发表于 2025-7-23 07:42 | 显示全部楼层
我觉得不用完全照搬,关键是理解那套思路,然后用 HAL 里新的 API 来实现就好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

37

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部