STM32读写保护功能及设置

STM32读写保护功能及设置
功能:: 读保护设置后将不能读出flash的内容;当解除读保护的时候stm32会自动擦出整篇flash;
设置: 读保护设置:
在程序的开头加入“读保护”代码,即实现了读保护功能;(每次程序运行先 开保护) 
解除读保护:解除读保护可以设置在按键里面,方便实现解锁,也不可不设;
(1)设置读保护: 
    if(FLASH_GetReadOutProtectionStatus()!=SET)
    { 
        FLASH_Unlock(); //不解锁FALSH也可设置读保护 
        FLASH_ReadOutProtection(ENABLE);
         FLASH_Lock();//上锁
    } 
(2)解除读保护 
    if(FLASH_GetReadOutProtectionStatus()!=RESET)
    { 
     FLASH_Unlock(); 
     FLASH_ReadOutProtection(DISABLE);
     FLASH_Lock();//上锁
    }
     
    这些函数在stm32f10x_flash里面
为了保护STM32F4芯片的代码和数据不被非法读写,可以使用STM32F4芯片的读写保护功能。下面是STM32F4芯片的读写保护设置方法: 1. 设置保护 (1)打开Flash保护功能 通过设置FLASH_CR寄存器的PRSTRT位和PRG位可以打开Flash保护功能。具体代码如下: ``` FLASH_Unlock(); //解锁Flash FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); //清除Flash标志位 FLASH_OB_Unlock(); //解锁Option Byte FLASH_OB_RDPConfig(0x80); //设置Flash保护级别为Level 1 FLASH_OB_Launch(); //启动Option Byte编程 FLASH_OB_Lock(); //锁定Option Byte FLASH_Lock(); //锁定Flash ``` (2)禁止Flash保护功能 通过设置FLASH_CR寄存器的PRG位可以禁止Flash保护功能。具体代码如下: ``` FLASH_Unlock(); //解锁Flash FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); //清除Flash标志位 FLASH_OB_Unlock(); //解锁Option Byte FLASH_OB_RDPConfig(0x00); //设置Flash保护级别为Level 0 FLASH_OB_Launch(); //启动Option Byte编程 FLASH_OB_Lock(); //锁定Option Byte FLASH_Lock(); //锁定Flash ``` 2. 设置保护 (1)打开Flash保护功能 通过设置FLASH_CR寄存器的WRP位可以打开Flash保护功能。具体代码如下: ``` FLASH_Unlock(); //解锁Flash FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); //清除Flash标志位 FLASH_WRPConfig(FLASH_WRProt_AllPages, ENABLE); //设置Flash保护 FLASH_Lock(); //锁定Flash ``` (2)禁止Flash保护功能 通过设置FLASH_CR寄存器的WRP位可以禁止Flash保护功能。具体代码如下: ``` FLASH_Unlock(); //解锁Flash FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); //清除Flash标志位 FLASH_WRPConfig(FLASH_WRProt_AllPages, DISABLE); //禁止Flash保护 FLASH_Lock(); //锁定Flash ``` 以上就是STM32F4芯片的读写保护设置方法。需要注意的是,一旦设置读写保护,就无法再对Flash进行编程或擦除,因此在设置之前一定要慎重考虑。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值