I am using STM32F3 and I could not erase its flash.
Below codes include address,
where is my fault?
void eraseFlash()
{
HAL_StatusTypeDef status = HAL_ERROR;
while(HAL_FLASH_Unlock()!=HAL_OK)
while(HAL_FLASH_Lock()!=HAL_OK);
while(HAL_FLASH_OB_Unlock()!=HAL_OK)
while(HAL_FLASH_OB_Lock()!=HAL_OK);
while((FLASH->SR & 0x00000001) != 0);
FLASH->SR |= 1 << 5;
FLASH->SR |= 1 << 4;
FLASH->CR |= 1 << 1;
FLASH->AR = 0x08008000;
FLASH->CR |= 1 << 6;
FLASH->CR |= 1 << 1;
FLASH->AR = 0x08008800
FLASH->CR |= 1 << 6;
FLASH->CR |= 1 << 1;
FLASH->AR = 0x08009000;
FLASH->CR |= 1 << 6;
while((FLASH->SR) & (1<<5));
while(((FLASH->SR) & (1<<5)) != 0) {
FLASH->SR |= 0x00100000;
}
FLASH->CR &= ~0x00000002;
while(HAL_FLASH_Lock()!=HAL_OK)
while(HAL_FLASH_Unlock()!=HAL_OK);
/* Lock Access to option bytes sector */
while(HAL_FLASH_OB_Lock()!=HAL_OK)
while(HAL_FLASH_OB_Unlock()!=HAL_OK);
}