#define STARTADDR31 0x08007C00
1、向Flash的指定地址写入数据
void WriteNBytesDataToFlash(uint32_t Addr,uint8_t *pData,uint8_t Len)
{
uint8_t i=0;
FLASH_Unlock();//解锁Flash编程擦除控制器
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清除标志位
/***********************************************************************************************
//FLASH_FLAG_BSY Flash忙标志位
//FLASH_FLAG_EOP Flash操作结束标志位
//FLASH_FLAG_PGERR Flash编写错误标志位
//FLASH_FLAG_WRPRTERR Flash页面写保护错误标志位
***********************************************************************************************/
FLASH_ErasePage(STARTADDR31);//擦除指定地址页
for(i=0;i<Len;i++)
{
FLASH_ProgramHalfWord(Addr+2*i,*pData++);//从指定地址开始写数据
}
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR);//清除标志位
FLASH_Lock();//锁定Flash编程擦除控制器
}
2、从指定地址读数据
uint8_t ReadSensorParameter(uint32_t Addr)
{
uint8_t SensorPar;
SensorPar = *(uint8_t *)Addr;
return SensorPar;
}