2

我想启用正常的读出保护,目前我在 ST Link Utility 中执行此操作,但更好的是在代码中。我找到了一些旧的代码片段,它们适用于旧的 Std Lib,而不是 HAL:

 if (FLASH_OB_GetRDP() != SET) {

  FLASH_OB_Unlock();

  FLASH_OB_RDPConfig(OB_RDP_Level_1);

  // Start the Option Bytes programming process
  if (FLASH_OB_Launch() != FLASH_COMPLETE) {
    // User can add here some code to deal with this error
  }

  FLASH_OB_Lock();
}

是否有人拥有适用于 HAL Lib 的正确代码?

谢谢!

4

2 回答 2

1
  HAL_FLASH_Unlock();
  HAL_FLASH_OB_Unlock();
  pOBInit_for_readprot.OptionType = OPTIONBYTE_RDP;
  pOBInit_for_readprot.RDPLevel = OB_RDP_LEVEL_1;
  HAL_FLASHEx_OBProgram(&pOBInit_for_readprot);
  HAL_FLASH_OB_Launch();
  HAL_FLASH_OB_Lock();
  HAL_FLASH_Lock();

有一个对 RDP 进行编程的工作程序。由我的 stm32f4 项目证明。

于 2021-10-29T12:16:09.497 回答