0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用STM32_FLASH模擬實(shí)現(xiàn)EEPROM功能

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

一、

工業(yè)應(yīng)用中經(jīng)常使用EEPROM來(lái)存儲(chǔ)數(shù)據(jù),為降低成本、節(jié)省PCB空間,外部EEPROM可以用片內(nèi)Flash加上特定的軟件算法代替。

因?yàn)槠瑑?nèi)Flash的擦寫(xiě)次數(shù)有限,所以要加上特定算法來(lái)增加使用壽命。此算法ST提供了歷程,我們可以移植到我們的程序里直接使用,比較方便。

二、源碼移植

移植很簡(jiǎn)單,一共兩個(gè)文件“eeprom.c","eeprom.h",移植前需要準(zhǔn)備選擇至少2塊連續(xù)大小相同的flash扇區(qū),示例程序中選用的是16K大小的2、3扇區(qū)?,F(xiàn)在打開(kāi)“eeprom.h”文件。移植時(shí)需要修改的內(nèi)容:

圖片

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

三、使用方法

在“eeprom.h”文件中的最下方可以看到對(duì)外的功能函數(shù)

圖片

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

這里需要注意這兩個(gè)函數(shù)都有一個(gè)輸入參數(shù),這是一個(gè)虛擬地址,也就是一個(gè)將來(lái)尋找我們存儲(chǔ)內(nèi)容的地址。

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

圖片

將VarValue值分配虛擬地址為0x5555后通過(guò)EE_WriteVariable函數(shù)寫(xiě)入flash,然后根據(jù)0x5555這個(gè)地址使用EE_ReadVariable函數(shù)將剛剛存儲(chǔ)的值讀到VarDataTab數(shù)組里。如下圖。

圖片

使用起來(lái)同樣簡(jiǎn)單。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    356005
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1020

    瀏覽量

    81605
  • Flash存儲(chǔ)
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    8294
  • HAL庫(kù)
    +關(guān)注

    關(guān)注

    1

    文章

    121

    瀏覽量

    6236
  • PCB
    PCB
    +關(guān)注

    關(guān)注

    1

    文章

    1803

    瀏覽量

    13204
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用Flash模擬EEPROM存儲(chǔ)參數(shù)

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

    FLASH模擬EEPROM可以單片機(jī)實(shí)現(xiàn)嗎?

    FLASH模擬EEPROM可以單片機(jī)實(shí)現(xiàn)嗎?哪位前輩做過(guò),望指教,謝謝
    發(fā)表于 05-18 18:36

    如何用stm32 Flash模擬eeprom?

    原子大哥,我現(xiàn)在要用stm32eeprom,但是遺憾的是他沒(méi)有。我看網(wǎng)上說(shuō)可以flash模擬,怎么回事,大哥給指條明路吧!
    發(fā)表于 09-22 23:07

    如何利用STM32FLASH模擬EEPROM

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

    如何利用單片機(jī)的內(nèi)部Flash模擬EEPROM

    的內(nèi)部Flash模擬EEPROM,實(shí)現(xiàn)可以多次擦寫(xiě),掉電又可以保存數(shù)據(jù)的功能。二、原理1.STM32
    發(fā)表于 01-26 06:59

    使用STM32F10x片內(nèi)的Flash存儲(chǔ)器實(shí)現(xiàn)軟件模擬EEPROM的方法

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

    FLASH模擬EEPROM入門(mén)指南

    FLASH模擬EEPROM入門(mén)指南使用AT32 的片上FLASH 模擬EEPROM
    發(fā)表于 10-19 06:10

    STM32_FLASH程序

    STM32 FLASH程序,很好的學(xué)習(xí)資料,快來(lái)下載吧
    發(fā)表于 02-15 15:30 ?41次下載

    STM32 FLASH模擬EEPROM資料

    STM32 FLASH模擬EEPROM資料,mcu,單片機(jī)相關(guān)的知識(shí)及內(nèi)容。
    發(fā)表于 03-10 17:14 ?18次下載

    MCU模擬eeprom基本功能

    MCU模擬eeprom基本功能?如果你的MCU的flash足夠大。并且你的MCU提供自編程flash指令。則可以通過(guò)
    發(fā)表于 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來(lái)實(shí)現(xiàn)EEPROM功能

    AN0002—AT32 MCU如何使用片上Flash來(lái)實(shí)現(xiàn)EEPROM功能當(dāng)前諸多嵌入式應(yīng)用場(chǎng)景都需要用到 EEPROM 作為非易失性的數(shù)據(jù)
    發(fā)表于 11-18 16:21 ?14次下載
    AN0002—AT32 MCU如何使用片上<b class='flag-5'>Flash</b>來(lái)<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>EEPROM</b><b class='flag-5'>功能</b>

    STM32F103:內(nèi)部Flash模擬EEPROM

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

    使用MCU Flash模擬EEPROM

    使用MCU Flash模擬EEPROM
    的頭像 發(fā)表于 10-18 18:01 ?696次閱讀

    如何使用Flash模擬EEPROM存儲(chǔ)參數(shù)?

    在MCU的使用中,經(jīng)常遇到需要存儲(chǔ)參數(shù)或掉電保持?jǐn)?shù)據(jù)等功能。其中,FlashEEPROM是常見(jiàn)的非易失性存儲(chǔ)器
    的頭像 發(fā)表于 09-21 09:14 ?1430次閱讀

    stm32f103 flash模擬eeprom

    ,STM32F103的Flash存儲(chǔ)器可以模擬EEPROM功能,在本文中我們將詳細(xì)介紹如何使用STM3
    的頭像 發(fā)表于 01-09 11:21 ?2037次閱讀