Код
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_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?