衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用STM32_FLASH模擬實現EEPROM功能

冬至子 ? 來源:麥芽二糖 ? 作者:麥芽二糖 ? 2023-10-23 17:40 ? 次閱讀

一、

工業應用中經常使用EEPROM來存儲數據,為降低成本、節省PCB空間,外部EEPROM可以用片內Flash加上特定的軟件算法代替。

因為片內Flash的擦寫次數有限,所以要加上特定算法來增加使用壽命。此算法ST提供了歷程,我們可以移植到我們的程序里直接使用,比較方便。

二、源碼移植

移植很簡單,一共兩個文件“eeprom.c","eeprom.h",移植前需要準備選擇至少2塊連續大小相同的flash扇區,示例程序中選用的是16K大小的2、3扇區。現在打開“eeprom.h”文件。移植時需要修改的內容:

圖片

好了移植完成,注意此源碼是基于HAL庫的,也可以自己修改flash讀寫程序,之前我將這個移植到GD的芯片,這個還是很方便的。

三、使用方法

在“eeprom.h”文件中的最下方可以看到對外的功能函數

圖片

我們首先需要將EE_Init()函數在主函數中調用初始化。剩下兩個EE_ReadVariable( uint16_t VirtAddress, uint16_t* Data )和EE_WriteVariable( uint16_t VirtAddress, uint16_t Data )函數是我們將用到的FLASH讀寫函數。

這里需要注意這兩個函數都有一個輸入參數,這是一個虛擬地址,也就是一個將來尋找我們存儲內容的地址。

例如,示例程序中,要存儲3個變量值,分別給這3個變量一個虛擬地址,0x5555, 0x6666, 0x7777 當然你也可以不用這個三個值作為虛擬地址。

圖片

將VarValue值分配虛擬地址為0x5555后通過EE_WriteVariable函數寫入flash,然后根據0x5555這個地址使用EE_ReadVariable函數將剛剛存儲的值讀到VarDataTab數組里。如下圖。

圖片

使用起來同樣簡單。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357567
  • EEPROM
    +關注

    關注

    9

    文章

    1033

    瀏覽量

    81952
  • Flash存儲
    +關注

    關注

    0

    文章

    38

    瀏覽量

    8334
  • HAL庫
    +關注

    關注

    1

    文章

    121

    瀏覽量

    6382
  • PCB
    PCB
    +關注

    關注

    1

    文章

    1824

    瀏覽量

    13204
收藏 人收藏

    評論

    相關推薦

    如何使用Flash模擬EEPROM存儲參數

    概述在MCU的使用中,經常遇到需要存儲參數或掉電保持數據等功能。其中,FlashEEPROM是常見的非易失性存儲器,都可以做到設備掉電重啟后,數據還會保留。但二者有明顯的區別:EEPROM
    的頭像 發表于 09-22 08:19 ?1775次閱讀
    如何使用<b class='flag-5'>Flash</b><b class='flag-5'>模擬</b><b class='flag-5'>EEPROM</b>存儲參數

    FLASH模擬EEPROM可以單片機實現嗎?

    FLASH模擬EEPROM可以單片機實現嗎?哪位前輩做過,望指教,謝謝
    發表于 05-18 18:36

    如何用stm32 Flash模擬eeprom

    原子大哥,我現在要用stm32eeprom,但是遺憾的是他沒有。我看網上說可以flash模擬,怎么回事,大哥給指條明路吧!
    發表于 09-22 23:07

    如何利用STM32FLASH模擬EEPROM

    ;不過FLASH的容量還是可觀的,我們可以利用FLASH模擬EEPROM。根據《STM32F10X閃存編程》中的介紹,
    發表于 12-09 07:13

    如何利用單片機的內部Flash模擬EEPROM

    的內部Flash模擬EEPROM實現可以多次擦寫,掉電又可以保存數據的功能。二、原理1.STM32
    發表于 01-26 06:59

    使用STM32F10x片內的Flash存儲器實現軟件模擬EEPROM的方法

    本文檔適用于STM32F1系列微控制器。介紹了外部EEPROM和嵌入式Flash存儲器之間的不同,描述了使用STM32F10x片內的Flash
    發表于 12-01 06:16

    FLASH模擬EEPROM入門指南

    FLASH模擬EEPROM入門指南使用AT32 的片上FLASH 模擬EEPROM
    發表于 10-19 06:10

    STM32_FLASH程序

    STM32 FLASH程序,很好的學習資料,快來下載吧
    發表于 02-15 15:30 ?41次下載

    STM32 FLASH模擬EEPROM資料

    STM32 FLASH模擬EEPROM資料,mcu,單片機相關的知識及內容。
    發表于 03-10 17:14 ?18次下載

    MCU模擬eeprom基本功能

    MCU模擬eeprom基本功能?如果你的MCU的flash足夠大。并且你的MCU提供自編程flash指令。則可以通過
    發表于 10-28 19:06 ?13次下載
    MCU<b class='flag-5'>模擬</b><b class='flag-5'>eeprom</b>基本<b class='flag-5'>功能</b>

    AN0002—AT32 MCU如何使用片上Flash實現EEPROM功能

    AN0002—AT32 MCU如何使用片上Flash實現EEPROM功能當前諸多嵌入式應用場景都需要用到 EEPROM 作為非易失性的數據
    發表于 11-18 16:21 ?14次下載
    AN0002—AT32 MCU如何使用片上<b class='flag-5'>Flash</b>來<b class='flag-5'>實現</b><b class='flag-5'>EEPROM</b><b class='flag-5'>功能</b>

    STM32F103:內部Flash模擬EEPROM

    的內部Flash模擬EEPROM實現可以多次擦寫,掉電又可以保存數據的功能。二、原理1. STM32
    發表于 12-02 11:36 ?33次下載
    <b class='flag-5'>STM32</b>F103:內部<b class='flag-5'>Flash</b><b class='flag-5'>模擬</b><b class='flag-5'>EEPROM</b>

    使用MCU Flash模擬EEPROM

    使用MCU Flash模擬EEPROM
    的頭像 發表于 10-18 18:01 ?748次閱讀

    如何使用Flash模擬EEPROM存儲參數?

    在MCU的使用中,經常遇到需要存儲參數或掉電保持數據等功能。其中,FlashEEPROM是常見的非易失性存儲器
    的頭像 發表于 09-21 09:14 ?1497次閱讀

    stm32f103 flash模擬eeprom

    STM32F103的Flash存儲器可以模擬EEPROM功能,在本文中我們將詳細介紹如何使用STM3
    的頭像 發表于 01-09 11:21 ?2181次閱讀
    威尼斯人娱乐城真实网址| 综合百家乐博彩论坛| 娱乐百家乐下载| 360棋牌游戏大厅| 真钱百家乐开户试玩| 足球博彩通| 百家乐透视牌靴哪里有| 香格里拉县| 威尼斯人娱乐城送| 百家乐加牌规则| 爱赢娱乐| 百家乐是娱乐场最不公平的游戏| 百家乐如何计牌| 百家乐官网赢钱打| 博威娱乐在线| 宝博百家乐娱乐城| 百家乐投注规则| 百家乐官网赚钱方| 百家乐官网娱乐城送分| 海王星娱乐网| bet365官网bet365gwylc| 百家乐官网怎样赢| 赌博百家乐官网经验| 大发888怎么打不开| 百家乐百家乐游戏| 金榜百家乐官网的玩法技巧和规则| 海立方百利宫娱乐城| 巴厘岛百家乐娱乐城| 新锦江百家乐娱乐平台| 万达百家乐官网娱乐城| 百家乐官网作弊演示| 舒兰市| 德州扑克大赛视频| 百家乐单注技巧| 喜来登百家乐官网的玩法技巧和规则 | 百家乐有秘技吗| 博盈百家乐游戏| 百家乐代理网址| 百家乐必胜软件下载| 百家乐官网送18元彩金| 百家乐官网高手技巧|