
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(); } 是不是擦除过程中,要关闭总中断之类的??如果是的话,要怎么关? |
关于stm32l431rct6的LPTIM计数模式
STM32L476VGT6 100P的可以直接用stm32u575vg 100P的替换到板子上吗?为啥烧录程序时无法连接?
使用STM32L451CEU6型号的芯片,在用usart(PA9、PA10)进行串口通信时,发送0x55在PC端可以收到正确的数据,但是发送0x80会收到0x00的数据,发送0x01会收到0x7F的数据,串口助手的配置和CubeMX上的配置参数是一样的(都是115200,8N1),请问各位这个是什么原因呀?
两块SRAM分别位于不同的基地址,有什么方法可以使这两块区域SRAM当成一块使用
串口接收函数跑几天就进不去了
SD卡格式化出错
STM32用户手册哪里下载 哪里有分类的
怎么将HAL库转为LL库。
为什么STM32L496RG第一次烧写程序后需要重新上下电才能正常执行程序?
ble hid
有哪位用过这个函数吗?是不是有什么特殊要求,比如中断之类的要关闭或打开??指点一下,谢谢
hello 我遇到了跟你相同的问题,产品的mcu erase会失败,同样的代码评估版没有问题。请问你最后如何解决的呢?
[md]我使用的mcu是l471,hal库,使用cubemx生成keil工程,遇到的问题是HAL_FLASHEx_Erase函数返回HAL_OK,但是实际上没有擦除数据,后来找到原因是没有把输入HAL_FLASHEx_Erase的FLASH_EraseInitTypeDef类型变量的所有属性都设置一遍,可能导致函数的某些内部参数处于未知状态