flash标准读写操作
#define PAGE_WRITE_START_ADDR ((uint32_t)0x0800F000) /* Start from 60K */
//解除闪存控制器(FPEC)和 FLASH_CTLR 寄存器被锁定的状态
FLASH_Unlock();
//闪存写保护状态。1:写保护失效;0:写保护有效。每个比特位代表 4K 字节(32 页)存储写保护状态
vlaue = FLASH_GetWriteProtectionOptionByte();
printf("闪存写保护状态:%x\r\n", vlaue);
//清除flash挂起标志
FLASH_ClearFlag( FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR );
//写32位数据
FLASH_ProgramWord(PAGE_WRITE_START_ADDR, 0x12345678);
//写32位数据在1K范围内
FLASH_ProgramWord(PAGE_WRITE_START_ADDR+1000, 0x12345678);
//写32位数据在1K范围外
FLASH_ProgramWord(PAGE_WRITE_START_ADDR+1024, 0x12345678);
printf("\r\n读取flash\r\n");
//读取flash
vlaue = *(__IO uint32_t*)(PAGE_WRITE_START_ADDR);
printf("32位数据:%x\r\n", vlaue);
vlaue = *(__IO uint32_t*)(PAGE_WRITE_START_ADDR+1000);
printf("32位数据在1K范围内:%x\r\n", vlaue);
vlaue = *(__IO uint32_t*)(P