Пытаюсь в коде сделать защиту от считывания прошивки с помощью HAL библиотек. Для этого выполняю вот такой код:

Код
FLASH_OBProgramInitTypeDef Optbyte;  
  
  HAL_FLASHEx_OBGetConfig(&Optbyte);   // read out RDPLvL
  
  if(Optbyte.RDPLevel != OB_RDP_LEVEL_1)
  {
    
      Optbyte.OptionType=OPTIONBYTE_RDP; // select RDP optionbyte
    Optbyte.RDPLevel=OB_RDP_LEVEL_1;   // select RDP level 1
    HAL_FLASH_Unlock();                // unlock Flash        
    HAL_FLASH_OB_Unlock();             // unlock Optionbytes
    HAL_FLASHEx_OBProgram(&Optbyte);   // set RDP=1
    
    
    HAL_FLASH_OB_Lock();                  // Lock Optionbytes
    HAL_FLASH_Lock();                     // lock Flash  
    
    HAL_FLASH_OB_Launch();             // write OB to Flash and reset
}



Зависает на HAL_FLASH_OB_Launch(); Именно зависает, а не просто отладчик отключается. А самое главное защита так и не включается.

Что я делаю не так? Есть ли у кого пример этого под HAL?