STM32G0系列 程序设置读保护和取消读保护

1.在main函数中加入启用读保护功能。

2.读保护函数

代码如下

int main(void)
{
    Flash_EnableReadProtection();
    While(1)
    {

    }
}

void Flash_EnableReadProtection(void)
{

  FLASH_OBProgramInitTypeDef OBInit;
  
  __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
  
  HAL_FLASHEx_OBGetConfig(&OBInit);
  if(OBInit.RDPLevel == OB_RDP_LEVEL_0)
  {
    OBInit.OptionType = OPTIONBYTE_RDP;
    OBInit.RDPLevel = OB_RDP_LEVEL_1;
    HAL_FLASH_Unlock();
    HAL_FLASH_OB_Unlock();
    HAL_FLASHEx_OBProgram(&OBInit);
    HAL_FLASH_OB_Lock();
    HAL_FLASH_Lock();
  }
  __HAL_FLASH_PREFETCH_BUFFER_ENABLE();

}

void Flash_DisableReadProtection(void)
{

  FLASH_OBProgramInitTypeDef OBInit;
  
  __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
  
  HAL_FLASHEx_OBGetConfig(&OBInit);
  if(OBInit.RDPLevel == OB_RDP_LEVEL_1)
  {
    OBInit.OptionType = OPTIONBYTE_RDP;
    OBInit.RDPLevel = OB_RDP_LEVEL_0;
    HAL_FLASH_Unlock();
    HAL_FLASH_OB_Unlock();
    HAL_FLASHEx_OBProgram(&OBInit);
    HAL_FLASH_OB_Lock();
    HAL_FLASH_Lock();
  }
  __HAL_FLASH_PREFETCH_BUFFER_ENABLE();

}

读保护后出现无法烧写问题。解决办法如下

打开STM32 ST-LINK Utility,点击Option Bytes此时芯片按一下复位键让芯片复位。

连接后如下所示

将保护等级修改按下图所示,level 0后点击Apply。

设置后如下图所示,再次烧写程序前记得先擦除Falsh。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: STM32G0系列微控制器的保护功能是为了保护芯片内部的程序代码不被非授权人员取或复制。如果需要解除STM32G0芯片的保护功能,可以按照以下步骤操作: 1. 准备相关工具:需要准备一台烧录器、连接线和开发环境。 2. 连接烧录器:将烧录器通过连接线连接到目标STM32G0芯片的SWD接口上。确保连接正确,并确认烧录器和芯片之间的通信正常。 3. 打开开发环境:打开支持STM32G0芯片的开发环境(如Keil、STM32CubeIDE等),创建一个新项目或打开现有项目。 4. 设置保护解除:在开发环境中,找到芯片选择、目标设备或调试配置等选项,进入芯片配置界面。在芯片配置界面中,找到保护或安全选项,并将其设置为解除保护。保存配置。 5. 烧录解除保护代码:在开发环境的烧录界面中,选择烧录操作。确保选择的芯片型号和连接方式正确,并勾选上解除保护选项。然后点击烧录按钮开始烧录解除保护代码。 6. 烧录完成:等待烧录完成,烧录器会显示烧录状态和结果。如果解除保护成功,烧录器会提示解除保护成功的信息。 7. 验证解除保护:重启芯片或将电源重新接入芯片,然后通过开发环境或其他方法取芯片的代码和数据。如果能够正常取,说明已成功解除STM32G0芯片的保护功能。 需要注意的是,解除STM32G0芯片的保护功能可能会对芯片的安全性产生影响,建议在确保芯片的安全性要求不高或已经备份好代码的情况下进行操作。操作过程中请谨慎,并遵循技术规范和合法使用的原则。 ### 回答2: STM32G0系列微控制器支持保护功能,该功能可以防止未经授权的存储器取操作。然而,有时候我们可能需要解除保护以进行进一步的开发或测试。下面是简要的步骤: 1. 准备工作:首先,我们需要一台支持SWD(串行线级调试)的STM32开发板(例如ST-Link V2)以及适当的软件工具(例如ST-Link Utility或STM32CubeProgrammer)来进行连接和操作。 2. 连接硬件:使用适当的线缆将STM32开发板与电脑连接。确保连接正确并稳定。 3. 打开软件工具:打开ST-Link Utility或STM32CubeProgrammer软件。 4. 连接目标设备:在软件工具中,选择正确的芯片型号(STM32G0系列)和连接方式(SWD)。 5. 连接目标设备:点击连接按钮,确保软件能够正确地识别并与目标设备建立连接。 6. 解除保护:在软件工具的选项菜单中,找到或选择"保护"选项。然后,点击解除保护按钮。根据提示操作,并等待解除保护的完成。 7. 执行其他操作:一旦保护成功解除,您可以进行进一步的开发、烧录或测试操作。 请注意,解除保护可能会有风险,并有可能使设备变得不可用。为了确保操作的安全性,请务必谨慎行事,并备份重要数据。此外,解除保护可能违反相关法律法规,因此请确保您具备相关的授权或许可证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值