完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
MCU型号: STM32L476RCT6
大家有用过 HAL_FLASHEx_Erase() 这个函数吗? 我根据官方例程写的代码,读写都能成功,但是擦除失败。 调用擦除函数 HAL_FLASHEx_Erase(),返回 0 = 擦除成功,但是擦除后返回去读,却发现并没有真正的被擦掉,不是0xFF。 下面是我的代码,各位大侠指点一下,非常感谢! void Erase_MCU_Flash(uint32_t p_number) { uint8_t state; uint32_t addr; p_number = 96; addr = FLASH_BASE + FLASH_PAGE_SIZE * p_number; HAL_FLASH_Unlock(); // Clear OPTVERR bit set on virgin samples __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR); BankNumber = GetBank(addr); // Get the bank EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES; EraseInitStruct.Banks = BankNumber; //EraseInitStruct.Banks = FLASH_BANK_1; EraseInitStruct.Page = p_number; EraseInitStruct.NbPages = 1; //if(HAL_FLASHEx_Erase( EraseInitStruct, PAGEError) != HAL_OK) // 这里默认擦除成功 //{ ; } state = HAL_FLASHEx_Erase( EraseInitStruct, PAGEError); // 测得这里返回0 HAL_FLASH_Lock(); } 是不是擦除过程中,要关闭总中断之类的??如果是的话,要怎么关? |
|
相关推荐
1个回答
|
|
刚换开发板试了一下,一样的固件,竟然可以。开发板的MCU型号是:STM32L476RGT6
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
OV7670摄像头使用串口发送数据到另一个板子上的lcd,出现花屏
1370 浏览 1 评论
684 浏览 0 评论
657 浏览 0 评论
STM32CUBEMX(12)--IIC,12864OLED(0.96寸)移植
702 浏览 0 评论
STM32CUBEMX(5)--自定义红外NEC解码,定时器TIM捕获方式
638 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-27 11:45 , Processed in 0.492178 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号