
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(); } 是不是擦除过程中,要关闭总中断之类的??如果是的话,要怎么关? |
请问大佬们,L433进入stop2模式还有874uA的电流,有什么排查的办法吗?
ST25R3916有快速读取吗?
STM32L476 Flash擦除失败问题
STM32L562-DK板中居然有个电流测量模块
STM32L433 单片机在串口配置为IRDA模式后,IRDA是否可以在STOP Mode1下唤醒
各位大佬们多提提宝贵建议定位根本原因,跪谢。STM32L452 在未知情况下打开了读保护RDP?MCU无法运行,只有解除读保护后重新烧录固件
VDD下电后使用VBAT引脚供电时LSE停振?
关于stm32l431rct6的LPTIM计数模式
STM32L476VGT6 100P的可以直接用stm32u575vg 100P的替换到板子上吗?为啥烧录程序时无法连接?
使用STM32L451CEU6型号的芯片,在用usart(PA9、PA10)进行串口通信时,发送0x55在PC端可以收到正确的数据,但是发送0x80会收到0x00的数据,发送0x01会收到0x7F的数据,串口助手的配置和CubeMX上的配置参数是一样的(都是115200,8N1),请问各位这个是什么原因呀?
有哪位用过这个函数吗?是不是有什么特殊要求,比如中断之类的要关闭或打开??指点一下,谢谢
hello 我遇到了跟你相同的问题,产品的mcu erase会失败,同样的代码评估版没有问题。请问你最后如何解决的呢?
[md]我使用的mcu是l471,hal库,使用cubemx生成keil工程,遇到的问题是HAL_FLASHEx_Erase函数返回HAL_OK,但是实际上没有擦除数据,后来找到原因是没有把输入HAL_FLASHEx_Erase的FLASH_EraseInitTypeDef类型变量的所有属性都设置一遍,可能导致函数的某些内部参数处于未知状态