void WriteBuf(u32 addr,u8 *p,u16 n)
{
u32 r1;
n=n/4;//擦除并写flash
FLASH_Unlock();//FLASH解锁
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);//清标志位
FLASH_ErasePage(addr);
while(n--)
{
r1=*(p++);
r1|=*(p++)<<8;
r1|=*(p++)<<16;
r1|=*(p++)<<24;
FLASH_ProgramWord(addr, r1);
addr+=4;
}
FLASH_Lock(); //锁之后,数据写不进去,也擦除不了
}
void ReadBuf(u32 addr,u8 *p,u16 n)
{
while(n--)
{
*(p++)=*((u8*)addr++);
}
}
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。