本帖最后由 dabendan001 于 2018-12-25 10:02 编辑
使用的是HAL库,参照论坛里的方法,添加读保护、写保护代码。在j-link烧写时,提示 有读保护 或 写保护。但 依然可以烧写。
在STM32F4系列的说明手册里,有提到 写保护。OB_RDP_LEVEL_2。该级别,完全禁止。但这个常数在F1系列的标准库里没有定义(F1库里只有LEVEL_0和LEVEL_1),我参照这个值定义到代码里,似乎不起作用。
请问各位,是如何禁止 F1系列再次烧写的?谢谢。
---------------------我的代码-------------------------------
/OB_RDP_LEVEL_2,在标准库里没有。我参照STM32F4的库,搬过来的。#define OB_RDP_LEVEL_2 ((uint8_t)0xCC)(~病急乱投医)。
//开启写保护,即:禁止写入;
OptionsBytesStruct.OptionType = OPTIONBYTE_WRP;
OptionsBytesStruct.WRPState = OB_WRPSTATE_ENABLE;
OptionsBytesStruct.WRPPage = FLASH_PAGE_TO_BE_PROTECTED;
OptionsBytesStruct.RDPLevel = OB_RDP_LEVEL_2; // OB_RDP_LEVEL_1
if(HAL_FLASHEx_OBProgram(&OptionsBytesStruct) != HAL_OK)
{
return 1;
}
|