void ROP(void) {
static FLASH_OBProgramInitTypeDef OptionsBytesStruct;
HAL_FLASH_Unlock(); //解锁Flash
HAL_FLASH_OB_Unlock(); //解锁选项字节区
HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct); //读取选项字节设置
//检测RDP的设置是否低于LEVEL 1
if (OptionsBytesStruct.RDPLevel < OB_RDP_LEVEL_1) {
OptionsBytesStruct.OptionType = OPTIONBYTE_RDP; //重写选项字
OptionsBytesStruct.RDPLevel = OB_RDP_LEVEL_1;
//如果写入没成功
if (HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK) {
//自己加个led什么的提示
} else {
HAL_FLASH_OB_Launch();
}
}
HAL_FLASH_OB_Lock(); //锁定选项字节
HAL_FLASH_Lock();
}