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(); } 是不是擦除过程中,要关闭总中断之类的??如果是的话,要怎么关? |
STM CUBE AI错误导入onnx模型报错
L433单片机的SPI3,在从模式,开接收中断情况下的问题
stm32L476部分电脑读不到驱动
AN2867的晶振布局问题
STM32L431KBU6 可能为引脚焊接不良问题
STM32L476 DFSDM 时钟配置
L432ADC量程一半的数值异常
STLINK-V3MODS多路桥接
STM32L471系列能否设置为Single Bank模式
lora模块无法切换收发
有哪位用过这个函数吗?是不是有什么特殊要求,比如中断之类的要关闭或打开??指点一下,谢谢
hello 我遇到了跟你相同的问题,产品的mcu erase会失败,同样的代码评估版没有问题。请问你最后如何解决的呢?