码迷,mamicode.com
首页 > 其他好文 > 详细

STM32F0的flash读写

时间:2016-04-18 09:56:00      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:

flash大小64k Rom+8k Ram的大小,stm32f051有64k Rom,总的分为 64页,一页1024byte ,在flash的Rom里面写数据掉电保存,相当于W25q80

uint32_t FLASH_START_ADDR = 0x08000000+1024*63; //1024   一页大小1k  ,   63   flash有64K在最后一页首地址开始写
/*****************************************************************************
功能:flash写

输入:addr:写地址 0-一页大小  data :4字节数据

返回:无
******************************************************************************/
void WriteFlash(uint32_t addr,uint32_t data)
{
FLASH_Unlock(); //½âËøFLASH±à³Ì²Á³ý¿ØÖÆÆ÷
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPERR);//Çå³ý±ê־λ
FLASH_ErasePage(FLASH_START_ADDR); //²Á³ýÖ¸¶¨µØÖ·Ò³
FLASH_ProgramWord(FLASH_START_ADDR+(addr*4),data); //´ÓÖ¸¶¨Ò³µÄ0µØÖ·¿ªÊ¼Ð´
FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPERR);//Çå³ý±ê־λ
FLASH_Lock(); //Ëø¶¨FLASH±à³Ì²Á³ý¿ØÖÆÆ÷
}

/*****************************************************************************
功能:读flash

输入:读地址

返回:读到的4字节数据
******************************************************************************/
uint32_t ReadFlash(uint16_t addr)
{
uint32_t value;
value = *(uint32_t*)(FLASH_START_ADDR+(addr*4));
return value;
}

 

STM32F0的flash读写

标签:

原文地址:http://www.cnblogs.com/luckytimor/p/5403196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!