void FLASH_Write(uint32_t Writeaddr,uint16_t *pBuffer,uint16_t NumToWrite)
{
uint8_t i = 0;
uint32_t PageError = 0;
if(NumToWrite > 255) return ;
static FLASH_EraseInitTypeDef EraseInitStruct;
EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;
EraseInitStruct.NbPages = 1;
EraseInitStruct.PageAddress = WRITE_START_ADDR;
HAL_FLASH_Unlock();
if(HAL_FLASHEx_Erase(&EraseInitStruct,&PageError) != HAL_OK)
{
return ;
}
while(i < NumToWrite)
{
HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD,Writeaddr+2*i,pBuffer[i]);
i++;
}
HAL_FLASH_Lock();
}
void FLASH_Read(uint32_t Readaddr,uint16_t *pBuffer,uint16_t NumToWrite)
{
uint8_t i = 0;
while(i < NumToWrite)
{
pBuffer[i] = *(uint32_t *)(Readaddr+2*i);
i++;
}
}