1. 在默认情况下,只有执行FLASH设置(延迟,预取指,半周期)的函数式允许执行的。
如果想要执行FLASH编写/擦除/保护函数,必须在文件“stm32f10x_conf.h”中定义_FLASH_PROG如下:
#define _FLASH_PROG
2.按照不同容量,存储器组织成32个1K字节/页(小容量)、128个1K字节/页(中容量),万利板子是中容量
#define FLASH_PAGE_SIZE ((u16)0x400) //一页为1024个字节
3.
- /* Get pages write protection status */
- WRPR_Value = FLASH_GetWriteProtectionOptionByte();
- ProtectedPages = WRPR_Value & 0x000000C0; //后面要对24页到27页,28页到31页进行操作,所以要获得其对应的写保护状态
- #ifdef WriteProtection_Disable
- if (ProtectedPages == 0x00)
- {/* Pages are write protected */
- /* Disable the write protection */
- FLASHStatus = FLASH_EraseOptionBytes();
- /* Generate System Reset to load the new option byte values */
- NVIC_GenerateSystemReset();
- }
- #else
- #ifdef WriteProtection_Enable
-
- if (ProtectedPages != 0x00)
- {/* Pages not write protected */
-
- /* Enable the pages write protection */
- FLASHStatus = FLASH_EnableWriteProtection(FLASH_WRProt_Pages24to27 |FLASH_WRProt_Pages28to31);
-
- /* Generate System Reset to load the new option byte values */
- NVIC_GenerateSystemReset();
- }
- #endif
- #endif
阅读(10127) | 评论(0) | 转发(1) |