启动读保护后,用户就不能再读写程序了.
所以,在烧写程序之前,需要程序调用关闭读保护.关闭读保护后,会自动清空flash上的程序
头文件位于:#include "stm32f10x_flash.h"
启动保护,用在main()函数初始化时调用:
void Set_Protect(void) //启动保护
{
if(FLASH_GetReadOutProtectionStatus() != SET)
{
FLASH_Unlock(); //解锁
FLASH_ReadOutProtection(ENABLE);
FLASH_Lock();//上锁
}
}
注意:
当代码第一次调用Set_Protect()函数启动读保护时。
期间不能再次调用Off_Protect()函数关闭读保护,需要重新断电才能关闭读保护(因为Flash状态启动读保护后,不能立即设置Status=1)
关闭读保护,在串口接收某个有效数据或按下某个按键时,调用:
void Off_Protect(void) //关闭保护
{
if(FLASH_GetReadOutProtectionStatus() != RESET)
{
FLASH_Unlock(); //不解锁FALSH也可设置读保护
FLASH_ReadOutProtection(DISABLE);
FLASH_Lock();//上锁
}
}
运行测试
1.第一步,下载程序
2.下载成功后,再次烧写程序,校验是否启动读保护(因为启动读保护后,不能进行读写程序了)
3.通过ST-LINK Utility工具尝试连接芯片,发现确实不能读数据了
然后只要代码调用Off_Protect()函数,便可以取消保护了
上一篇:STM32-正弦波可调(50HZ~20KHZ可调、峰峰值0~3.3V可调)
下一篇:STM32-嵌入式学习笔记02-中断应用概述
推荐阅读最新更新时间:2024-11-09 13:50
设计资源 培训 开发板 精华推荐
- 使用 MaxLinear, Inc 的 SPX1585 的参考设计
- 评估板:SRK2001自适应同步整流控制器,用于STP120N4F6的LLC谐振转换器
- EC20 USB dongle EC20 USB上网卡
- 在线互动式450W UPS参考设计-230V/50Hz模型
- 【已验证-开源】ESP全系列学习板
- CY8C5868AXI-LP031 CY8C58LP PSoC 5LP 可编程片上系统的典型应用
- 用于完整 3V、12 位、1MHz 模数转换系统的 AD8604ARUZ 运算放大器的典型应用
- 【立创开发板】麦克纳姆轮小车
- 用于最后喘息电路的 LT3007ITS8 低压差线性稳压器的典型应用电路
- AM1G-1207DZ ±7.2V 1 瓦 DC-DC 转换器的典型应用