Fixed...
HAL_StatusTypeDef SwapBank(void)
{
FLASH_OBProgramInitTypeDef OB;
HAL_FLASHEx_OBGetConfig(&OB);
if (OB.USERConfig & OB_DUALBANK_DUAL)
{
HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();
if (OB.USERConfig & OB_BFB2_ENABLE)
{
OB.OptionType = OPTIONBYTE_USER;
OB.USERType = OB_USER_BFB2;
OB.USERConfig = OB_BFB2_DISABLE;
}
else
{
OB.OptionType = OPTIONBYTE_USER;
OB.USERType = OB_USER_BFB2;
OB.USERConfig = OB_BFB2_ENABLE;
}
if (HAL_FLASHEx_OBProgram(&OB) != HAL_OK)
{
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
return HAL_ERROR;
}
HAL_FLASH_OB_Launch();
HAL_FLASH_OB_Lock();
HAL_FLASH_Lock();
NVIC_SystemReset();
return HAL_OK;
}
return HAL_ERROR;
}