zoukankan      html  css  js  c++  java
  • STM32F0的flash读写

    ////觉得好的点下推荐,感恩啦!

    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;
    }

  • 相关阅读:
    神经网络之非线性分类器——神经网络
    卷积神经网络之迁移学习
    卷积神经网络之卷积的结构和参数的多少
    卷积神经网络之卷积的物理意义
    神经网络的后续改进
    图像的矩 图像的轮廓面积和长度
    包围轮廓的矩形边界 opencv
    Linux中的环境变量配置文件及其作用
    Linux中的数值运算
    Linux中接收键盘输入
  • 原文地址:https://www.cnblogs.com/luckytimor/p/5403196.html
Copyright © 2011-2022 走看看