不好意思啊 版主 没表达清楚
我是这么用的
结果Data_BUF1写进去了 Data_BUF2存的地方又被清成FF了,我该怎么操作呢
FLASH_WriteHalfWord(0x08010000,Data_BUF2,4);
FLASH_WriteHalfWord(0x08010010,Data_BUF1,4);
void FLASH_WriteHalfWord(u32 add, u16 *DataBuf, u8 number)
{
volatile FLASH_Status FLASHStatus;
FLASH_Unlock(); //解锁
FLASHStatus = FLASH_COMPLETE;
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
FLASHStatus = FLASH_ErasePage(add);
FLASH_Unlock(); //Unlock the Flash
while(number)
{
FLASH_ProgramHalfWord(add, *DataBuf);//在指定地址编写半字
if(FLASH_GetStatus()==FLASH_COMPLETE) //获取Flash状态
{
number--;
add += 2;
DataBuf++;
}
else
{
number=0;
}
}
FLASH_Lock();
}
|