[STM32L4]

L4的擦除flash的接口执行成功了,就是擦不了

[复制链接]
480|13
手机看帖
扫描二维码
随时随地手机跟帖
亡羊补牢|  楼主 | 2024-11-27 21:56 | 显示全部楼层 |阅读模式
FLASH_EraseInitTypeDef eraseInit;
        eraseInit.TypeErase = FLASH_TYPEERASE_PAGES;
        eraseInit.Banks = FLASH_BANK_2;
        eraseInit.Page = 254;
        eraseInit.NbPages = 2;      
        uint32_t PageError;
      
       HAL_FLASH_Unlock();
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR |FLASH_FLAG_PGAERR |FLASH_FLAG_PGSERR);

        if(HAL_OK != HAL_FLASHEx_Erase(&eraseInit,&PageError))
        {
                printf("PageError:%d\n",PageError);
               HAL_FLASH_Lock();
        }
        HAL_FLASH_Lock();
        printf("erase ok\n");

大家有遇到过吗,麻烦看看代码有什么问题没?

使用特权

评论回复
亡羊补牢|  楼主 | 2024-11-27 21:58 | 显示全部楼层
PageError返回值是0xFFFFFFFF,这是擦除page成功的正确返回值,但是flash就是没有被擦除,还是以前的值

使用特权

评论回复
海滨消消| | 2024-12-11 11:32 | 显示全部楼层
电源功率不够?

使用特权

评论回复
jcky001| | 2024-12-11 11:36 | 显示全部楼层
使用万用表检测电路连接

使用特权

评论回复
elephant00| | 2024-12-11 11:37 | 显示全部楼层
清除Flash操作相关的标志位

使用特权

评论回复
laocuo1142| | 2024-12-11 12:00 | 显示全部楼层
晶振工作不正常,可能导致Flash擦除操作无法正确执行。

使用特权

评论回复
flycamelaaa| | 2024-12-11 13:00 | 显示全部楼层
软件或固件问题

使用特权

评论回复
powerantone| | 2024-12-11 14:00 | 显示全部楼层
固件中可能存在bug

使用特权

评论回复
stormwind123| | 2024-12-11 16:20 | 显示全部楼层
硬件连接问题

使用特权

评论回复
probedog| | 2024-12-11 17:00 | 显示全部楼层
Flash芯片可能被设置为保护状态,禁止擦除操作。

使用特权

评论回复
probedog| | 2024-12-11 19:46 | 显示全部楼层
检查电源滤波电容是否足够大,以确保在擦除Flash时电压稳定。

使用特权

评论回复
cr315| | 2024-12-11 19:59 | 显示全部楼层
解除Flash保护

使用特权

评论回复
classroom| | 2024-12-11 21:00 | 显示全部楼层
更换晶振试试

使用特权

评论回复
两只袜子| | 2024-12-11 21:20 | 显示全部楼层
更新软件或固件

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

167

帖子

3

粉丝