打印
[STM32L4]

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

[复制链接]
782|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
使用万用表检测电路连接

使用特权

评论回复
5
elephant00| | 2024-12-11 11:37 | 只看该作者
清除Flash操作相关的标志位

使用特权

评论回复
6
laocuo1142| | 2024-12-11 12:00 | 只看该作者
晶振工作不正常,可能导致Flash擦除操作无法正确执行。

使用特权

评论回复
7
flycamelaaa| | 2024-12-11 13:00 | 只看该作者
软件或固件问题

使用特权

评论回复
8
powerantone| | 2024-12-11 14:00 | 只看该作者
固件中可能存在bug

使用特权

评论回复
9
stormwind123| | 2024-12-11 16:20 | 只看该作者
硬件连接问题

使用特权

评论回复
10
probedog| | 2024-12-11 17:00 | 只看该作者
Flash芯片可能被设置为保护状态,禁止擦除操作。

使用特权

评论回复
11
probedog| | 2024-12-11 19:46 | 只看该作者
检查电源滤波电容是否足够大,以确保在擦除Flash时电压稳定。

使用特权

评论回复
12
cr315| | 2024-12-11 19:59 | 只看该作者
解除Flash保护

使用特权

评论回复
13
classroom| | 2024-12-11 21:00 | 只看该作者
更换晶振试试

使用特权

评论回复
14
两只袜子| | 2024-12-11 21:20 | 只看该作者
更新软件或固件

使用特权

评论回复
15
失物招領| | 2024-12-21 22:26 | 只看该作者
这段代码是用于STM32微控制器的FLASH擦除操作。从你给出的代码片段来看,大体上逻辑是正确的,但确保你已经正确包含了必要的头文件,并且已经初始化了HAL库。例如,HAL_FLASH_Unlock() 和 HAL_FLASHEx_Erase() 等函数需要在HAL库环境下使用。

使用特权

评论回复
16
温室雏菊| | 2024-12-21 22:29 | 只看该作者
确保eraseInit.BankseraseInit.Page eraseInit.NbPages 等参数的设置是正确的。特别是页号和页数,要确保它们是有效的并且不会超出FLASH的总容量

使用特权

评论回复
17
白马过平川| | 2024-12-21 22:32 | 只看该作者
确保eraseInit.BankseraseInit.Page eraseInit.NbPages 等参数的设置是正确的。特别是页号和页数,要确保它们是有效的并且不会超出FLASH的总容量

使用特权

评论回复
18
春日负喧| | 2024-12-22 02:00 | 只看该作者
在擦除操作之前,你正确地解锁了FLASH。但在擦除操作之后,即使出现了错误,你也再次锁定了FLASH。这没有问题,但请注意,如果擦除操作成功,即使在打印“erase ok”之后,你也应该再次锁定FLASH,以确保安全

使用特权

评论回复
19
温室雏菊| | 2024-12-22 03:00 | 只看该作者
如果HAL_FLASHEx_Erase()函数返回的不是HAL_OK,你正确地检查了PageError并打印了错误信息。这是一个好的做法

使用特权

评论回复
20
风凉| | 2024-12-22 05:00 | 只看该作者
你正确地清除了FLASH的各种标志位,这是在进行擦除操作前的一个好习惯

33176766d1b1b3222.png (478 Bytes )

33176766d1b1b3222.png

使用特权

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

本版积分规则

35

主题

167

帖子

3

粉丝