
本帖最后由 any012 于 2016-12-26 16:19 编辑 cube自带的例程里有个工程是关于flash写保护的。 但是看不懂啊。 节选了开头的一部分,想请大家帮分析下。
#ifdef WRITE_PROTECTION_DISABLE if((OptionsBytesStruct.WRPPage & FLASH_PAGE_TO_BE_PROTECTED) != FLASH_PAGE_TO_BE_PROTECTED) {...} #elif defined WRITE_PROTECTION_ENABLE if(((~OptionsBytesStruct.WRPPage) & FLASH_PAGE_TO_BE_PROTECTED )!= FLASH_PAGE_TO_BE_PROTECTED) {...} #endif /* WRITE_PROTECTION_DISABLE */ 这几个条件编译,第一句,是先判断是否定义了写保护功能,如果没有的话,执行第一个条件编译,如果设置了的话,执行第二个条件编译? 根据是否定义了WRITE_PROTECTION_DISABLE这个宏,先使能写保护,或者禁止写保护。 那么接下来这些: if ((OptionsBytesStruct.WRPPage & FLASH_PAGE_TO_BE_PROTECTED) != 0x00) { HAL_FLASHEx_Erase(&EraseInitStruct, &PageError); ... } 是先擦出有写保护的页,再写入? 那么为什么不是写入数据后,再使能写保护呢? ![]() |
STM32F105 USB HID RCC設定
STM32F103VCT6单片机的复位引脚和地引脚短路
【官方例程】STM32F107以太网官方例程
【MCU实战经验】基于STM32F103C8T6的hart总线调试器设计
求教STM32F103进入STOP模式后用外部中断唤醒的问题
基于STM32F103RCT6的无源蜂鸣器音乐播放(生日快乐歌)
STM32F103c8t6有没有DAC 功能?
STM32F103x中文数据手册
新手求教,为何在我电脑上找不到STM32F1Xx.h文件
金龙107例程汇总(STM32F107)
在阿莫论坛搜到了相关办法:
这个是读保护的,写保护和这个类似。
在程序里加上这部分后,利用串口下载到单片机里,再次下载时,提示需要移除保护。
但,我如何知道是写保护起作用了还是读保护起作用了?
评分
查看全部评分