转自:https://www.cnblogs.com/lifexy/p/8669916.html
STM32可以对存储在flash上的程序进行读保护.
- 启动读保护后,用户就不能再读写程序了.
- 所以,在烧写程序之前,需要程序调用关闭读保护.关闭读保护后,会自动清空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();//上锁 } }