Sem tam se stane, že je třeba programově změnit FLASH option byte. Dostupných příkladů je ale málo a nejsou zcela transparentní. Zde je jednoduchý a názorný příklad jak v programu změnit FLASH option byte flag.

// Příklad vypnutí IWDG ve STOP modu   

...

__disable_irq();    
FLASH_OBProgramInitTypeDef pOBInit;
HAL_FLASHEx_OBGetConfig(&pOBInit);
if( pOBInit.USERConfig & (1 << 17) ) { // 17 bit = OB_USER_IWDG_STOP
    memset((void*)&pOBInit,0,sizeof(pOBInit));
    pOBInit.OptionType = OPTIONBYTE_USER;
    pOBInit.USERType = OB_USER_IWDG_STOP;
    pOBInit.USERConfig = OB_IWDG_STOP_FREEZE;
    HAL_FLASH_Unlock();
    __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR); // Clear the FLASH's pending flags.
    HAL_FLASH_OB_Unlock();        
    if (HAL_FLASHEx_OBProgram(&pOBInit)==HAL_OK)
    {         
        /*  Provede reset! To je správně. */
        HAL_FLASH_OB_Launch(); 
    }
    HAL_FLASH_OB_Lock();
    HAL_FLASH_Lock();    
} 
__enable_irq();  

...