STM32F0 內部Flash作爲數據存儲的讀寫

1。 寫數據
void WriteDataInFlash(uint32_t WriteAddr,uint16_t *OutPtr,uint16_t NumToWrite)
{
uint8_t i=0; //
uint16_t temp=0;

	RCC_HSICmd(ENABLE);			 
	FLASH_Unlock();
	FLASH_ClearFlag(FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPERR);
 
	FLASH_ErasePage(PARAM_START_ADDR);//²Á³ö¶ÔÓ¦µØÖ·µÄ1Ò³(1K)

	for(i=0;i<NumToWrite;i++)  			//дÈëip
	{	

// temp=OutPtr[i2+1];
temp=OutPtr[i];
// temp<<=8;
// temp=temp+OutPtr[i
2];
// FLASH_ProgramHalfWord(WriteAddr+i*2+2,temp);
FLASH_ProgramHalfWord(WriteAddr,temp);
WriteAddr += 2;
}
FLASH_Lock();
RCC_HSICmd(DISABLE);

}

2。 讀數據
void ReadDataInFlash(uint32_t ReadAddr,uint16_t pBuffer,uint16_t NumToRead)
{
uint16_t i;
for(i=0;i<NumToRead;i++)
{
// pBuffer[i]=(
(uint16_t )(ReadAddr+i+2));//¶ÁÈ¡2¸ö×Ö½Ú.
pBuffer[i]=(
(uint16_t *)(ReadAddr));//¶ÁÈ¡2¸ö×Ö½Ú.
ReadAddr+=2;//Æ«ÒÆ2¸ö×Ö½Ú.
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章