HAL_FLASH_Unlock(); for (i = 0; i < erase_pages; i++) { EraseInitStruct.PageAddress = addr + (FLASH_PAGE_SIZE * i); flash_status = HAL_FLASHEx_Erase(&EraseInitStruct, &PAGEError); if (flash_status != HAL_OK) { HAL_FLASH_Lock(); return -1; } else{ //FLash操作可能非常...
HAL_FLASH_Unlock();//解锁flash//准备擦除整页,写入前需要擦除FLASH_EraseInitTypeDef f; f.TypeErase= FLASH_TYPEERASE_PAGES;//页擦除f.PageAddress = PAGE_START_ADDRESS + (1024* paramSizeKb);//擦除页地址f.NbPages =1;//擦除1页uint32_t PageError=0; HAL_FLASHEx_Erase(&f, &PageError)...
表43.2.1.3 函数HAL_FLASHEx_Erase()形参描述 该函数的返回值描述,如下表所示:表43.2.1.4 ...
STM32 本身没有自带 EEPROM,但是 STM32 具有 IAP(在应用编程)功能,所以我们可以把它的 FLASH 当成...
为了擦除STM32F103的Flash,你需要使用STM32的固件库(如STM32 Standard Peripheral Library或HAL库)中的Flash操作函数。以下是一个使用HAL库擦除Flash的示例代码: c #include "stm32f1xx_hal.h" // 声明Flash擦除函数 void Erase_Flash(void); int main(void) { // HAL库初始化 HAL_Init(); // 配置系统...
HAL_FLASH_OB_Unlock();HAL_FLASHEx_OBProgram(&OBInit);HAL_FLASH_OB_Lock();HAL_FLASH_Lock();...
HAL_FLASH_Lock(); } STEP 1, call func: void MCU_PROTECTION_EraseOB(void){ HAL_FLASH_Unlock();HAL_FLASH_OB_Unlock(); HAL_FLASHEx_OBErase(); HAL_FLASH_OB_Lock(); HAL_FLASH_Lock(); } STEP 2 - reboot STEP 3 - call UnProtectRWpages();STEP 4 - reboot ... look at 0x1FFFF800...
status=HAL_FLASHEx_Erase(&eraseinitstruct,&PageError);if(status!=HAL_OK){return(USBD_FAIL);}return(USBD_OK);/* USER CODE END 2 */}//flash写入数据uint16_tMEM_If_Write_FS(uint8_t*src,uint8_t*dest,uint32_tLen){/* USER CODE BEGIN 3 */uint32_ti=0;for(i=0;i<Len;i+=4){...
status = HAL_FLASHEx_Erase(&pEraseInit, &PageError);if (status != HAL_OK){ /* Error ...
uint32_t PageError = 0; HAL_FLASHEx_Erase(&f, &PageError);//擦除PageError == 0xFFFFFFFF表示成功 if(PageError != 0xFFFFFFFF) { return false; } //开始写数据 uint32_t startAddressIndex = PAGE_START_ADDRESS + (1024 * paramSizeKb); //startAddressIndex += 8,写入位置,每次+8是因为...