娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月13日(星期五)

2019年06月13日 | STM32F103內(nèi)部FLASH及地址表

發(fā)布者:DreamySerenity 來源: eefocus關(guān)鍵字:STM32F103  內(nèi)部FLASH  地址表 手機看文章 掃描二維碼
隨時隨地手機看文章

在我們應(yīng)用開發(fā)時,經(jīng)常會有一些程序運行參數(shù)需要保存,如一些修正系數(shù)。這些數(shù)據(jù)的特點是:數(shù)量少而且不需要經(jīng)常修改,但又不能定義為常量,因為每臺設(shè)備可能不一樣而且在以后還有修改的可能。將這類數(shù)據(jù)存在指定的位置,需要修改時直接修改存儲位置的數(shù)值,需要使用時則直接讀取,會是一種方便的做法。考慮到這些數(shù)據(jù)量比較少,使用專門的存儲單元既不經(jīng)濟,也沒有必要,而STM32F103內(nèi)部的Flash容量較大,而且ST的庫函數(shù)中還提供了基本的Flash操作函數(shù),實現(xiàn)起來也比較方便。

以大容量產(chǎn)品STM32F103VE為例,其Flash容量達到512K,可以將其中一部分用作數(shù)據(jù)存儲。如下是大容量的Flash組織模式:
在這里插入圖片描述

根據(jù)上面的Flash組織模式,我們可以根據(jù)自己的使用方便來作相應(yīng)的定義。因為大容量每個扇區(qū)定義為2K,而小容量和中容量都定義為1K,所以我們做如下宏定義:

#define FLASH_SIZE 512 //所選MCU的FLASH容量大小(單位為K)

#if FLASH_SIZE<256

#defineSECTOR_SIZE 1024 //字節(jié)

#else

#defineSECTOR_SIZE 2048 //字節(jié)

#endif

雖然ST的庫函數(shù)比較全面,但都是基本操作,為了使用方面,根據(jù)我們自己的需要對其進行再次封裝

對于讀操作相對比較簡單,內(nèi)置閃存模塊可以在通用地址空間直接尋址,就像讀取變量一樣。

//從指定地址開始讀取多個數(shù)據(jù)

void FLASH_ReadMoreData(uint32_tstartAddress,uint16_t *readData,uint16_t countToRead)

{

uint16_tdataIndex;

for(dataIndex=0;dataIndex{

readData[dataIndex]=FLASH_ReadHalfWord(startAddress+dataIndex*2);

}

}

//讀取指定地址的半字(16位數(shù)據(jù))

uint16_t FLASH_ReadHalfWord(uint32_t address)

{

return*(__IO uint16_t*)address;

}

//讀取指定地址的全字(32位數(shù)據(jù))

uint32_t FLASH_ReadWord(uint32_t address)

{

uint32_ttemp1,temp2;

temp1=(__IO uint16_t)address;

temp2=(__IO uint16_t)(address+2);

return(temp2<<16)+temp1;

}

對于寫操作相對來說要復(fù)雜得多,寫操作包括對用戶數(shù)據(jù)的寫入和擦除。為了防止誤操作還有寫保護鎖。但這些基本的操作ST的庫函數(shù)已經(jīng)為我們寫好了,我們只需要調(diào)用即可。

STM32復(fù)位后,F(xiàn)PEC模塊是被保護的,只有在寫保護被解除后,我們才能操作相關(guān)寄存器。STM32閃存的編程每次必須寫入16位,任何不是半字的操作都會造成錯誤。如下圖是Flash寫的過程:

在這里插入圖片描述

STM32的FLASH在編程的時候,也必須要求其寫入地址的FLASH是被擦除了的(也就是其值必須是0XFFFF),否則無法寫入。Flash的擦除要求必須整頁擦除,所以也必須整頁寫入,否則可能會丟失數(shù)據(jù)。如下圖是Flash頁擦除過程:

如下為Flash全擦除過程,

在這里插入圖片描述

根據(jù)以上圖示我們便寫數(shù)據(jù)寫入函數(shù)如下:

//從指定地址開始寫入多個數(shù)據(jù)

void FLASH_WriteMoreData(uint32_tstartAddress,uint16_t *writeData,uint16_t countToWrite)

{

if(startAddress=(FLASH_BASE+1024FLASH_SIZE)))

{

return;//非法地址

}

FLASH_Unlock(); //解鎖寫保護

uint32_toffsetAddress=startAddress-FLASH_BASE; //計算去掉0X08000000后的實際偏移地址

uint32_tsectorPosition=offsetAddress/SECTOR_SIZE; //計算扇區(qū)地址,對于STM32F103VET6為0~255

uint32_tsectorStartAddress=sectorPosition*SECTOR_SIZE+FLASH_BASE; //對應(yīng)扇區(qū)的首地址

FLASH_ErasePage(sectorStartAddress);//擦除這個扇區(qū)

uint16_tdataIndex;

for(dataIndex=0;dataIndex{

FLASH_ProgramHalfWord(startAddress+dataIndex*2,writeData[dataIndex]);

}

FLASH_Lock();//上鎖寫保護

}

在擦除之前應(yīng)該將頁面上的數(shù)據(jù)讀取出來與要寫入的數(shù)據(jù)合并,待擦除后再寫入,但這樣數(shù)據(jù)量很大(大容量是2K一個扇區(qū)),所以考慮到是少量數(shù)據(jù)存儲,所以每次都將全部數(shù)據(jù)同時寫入,簡化操作,也減少數(shù)據(jù)處理量。經(jīng)測試以上程序?qū)懭牒妥x出數(shù)據(jù)均正確,可以實現(xiàn)內(nèi)部Flash的讀寫操作。需要更深入了解可以參考《STM32F10xxx 閃存編程參考手冊》。


關(guān)鍵字:STM32F103  內(nèi)部FLASH  地址表 引用地址:STM32F103內(nèi)部FLASH及地址表

上一篇:STM32使用TCP透傳方式與ONENET進行連接的簡單教程
下一篇:STM32低功耗之待機模式

推薦閱讀

央視網(wǎng)消息:說起電容和電阻,我們?nèi)粘I钪薪佑|的所有電子產(chǎn)品都離不開這兩樣基礎(chǔ)的元器件,多年以來,電容和電阻價格都相對穩(wěn)定,但從去年下半年開始,電阻、電容的價格突然大幅上漲,一些型號的產(chǎn)品價格甚至翻了幾十倍,這是什么原因?缺貨!漲價!部分小型電子企業(yè)被迫關(guān)停蔡成凱的工廠位于深圳市光明新區(qū),主要生產(chǎn)電池、移動電源等產(chǎn)品。一個小型電...
推薦使用本文之前有一定的嵌入式基礎(chǔ),請先確保了解以下名詞(提前百度):cJSON,EDP,TCP透傳首先在ONENET平臺上創(chuàng)建一個TCP透傳的產(chǎn)品,這段在ONENET開發(fā)者中心上有很多教程,就不再贅述。下載一個EdpProtoDebugger先使用這個工具與ONENET建立連接,具體教程可以看到,實際上建立與平臺的連接就是通過一個簡單的EDP數(shù)據(jù)包實現(xiàn)的,我們在嵌入式應(yīng)用中,...
日前,瑞典著名軟件開發(fā)商IAR Systems宣布與兆易創(chuàng)新達成合作伙伴關(guān)系,將為兆易創(chuàng)新基于RISC-V內(nèi)核的MCU產(chǎn)品提供性能強大的開發(fā)工具。同時,雙方合作將為RISC-V開發(fā)者提供易于使用的完整解決方案。兆易創(chuàng)新作為業(yè)界領(lǐng)先的Flash和MCU供應(yīng)商,致力于提供先進的存儲技術(shù)和IC解決方案。2019年8月,兆易創(chuàng)新推出了全球首個基于RISC-V內(nèi)核的32位通用微控制器,...
AMD和Intel在CPU的拉鋸戰(zhàn)已持續(xù)多年,在zen2架構(gòu)下AMD的CPU有了大幅提升,市場份額逐漸擴大,而隨著Intel引入10nm工藝后,AMD在CPU市場或再度承壓。AMD在銳龍?zhí)幚砥髦螅阅堋⒐に囈灿袃?yōu)勢了,尤其是在EPYC服務(wù)器產(chǎn)品線上,7nm Zen2開始就做到了64核128線程,友商Intel多年來都是28核56線程。眼看AMD的市場份額逐漸擴大,Intel也開始發(fā)力。今年4月,英...

史海拾趣

問答坊 | AI 解惑

電路“集成”使軍事力量倍增

電路“集成”使軍事力量倍增       自從60年代第一塊集成電路問世,30多年來,微電子技術(shù)得到了飛速發(fā)展,首先在軍事上得到廣泛的應(yīng)用,促成了精確制導(dǎo)武器、C4I系統(tǒng)等一系列高技術(shù)武器裝備的發(fā)展,使作戰(zhàn)效能 ...…

查看全部問答∨

常用器件選型表09.05版 轉(zhuǎn)載

本帖最后由 paulhyde 于 2014-9-15 09:06 編輯 嗯,轉(zhuǎn)載的,版權(quán)歸原作者所有哈  …

查看全部問答∨

1602的學(xué)習(xí)總結(jié)(菜鳥入門級)

先來敘述一些概念。 LCM和LCD的區(qū)別 LCM【Liquid Crystal Module】液晶顯示模塊,通常包括顯示驅(qū)動電路,接口電路等等。往往做成一個整體模塊的形式,包括LCD液晶屏,屏的框架,線路板,驅(qū)動IC,控制IC等一系列,一般還有背光電路,其中IC的 ...…

查看全部問答∨

測判三極管的方法

大家知道,三極管是含有兩個PN結(jié)的半導(dǎo)體器件。測試三極管要使用萬用電表的歐姆擋,并選擇R×100或R×1k擋位。假定我們并不知道被測三極管是NPN型還是PNP型,也分不清各管腳是什么電極。測試的第一步是判斷哪個管腳是基極。這時,我們?nèi)稳蓚€電極( ...…

查看全部問答∨

2440 RGB565信號驅(qū)動液晶屏?xí)霈F(xiàn)亮點,并不斷閃動

2440 RGB565信號驅(qū)動液晶屏?xí)霈F(xiàn)某些亮點,并不斷閃動,請教下有什么解決的思路和方法,在顯示某些圖片的時候亮點會加劇,請教下有什么好的解決思路…

查看全部問答∨

緊急求救!!!!!!!

電腦的預(yù)裝系統(tǒng)為VISTA系統(tǒng),更換XP后,亮度為最暗狀態(tài),而且無法調(diào)節(jié)亮度,安裝公版顯卡驅(qū)動后,在桌面點右鍵屬性----設(shè)置---顯示屬性中更改顏色質(zhì)量,然后再在桌面點擊右鍵,圖形屬性中添加一個新的圖形選項(隨便命名就可以)保存后,手動選擇添 ...…

查看全部問答∨

89S51的p3.0腳和p3.1腳是用來進行RS232通訊的,請問在這兩個腳能不能直接跟計算機連接,如果不能,是不是要在和計算機連接之間連上一個232接口芯片呢

89S51的p3.0腳和p3.1腳是用來進行RS232通訊的,請問在這兩個腳能不能直接跟計算機連接,如果不能,是不是要在和計算機連接之間連上一個232接口芯片呢?目前流行的232接口芯片有哪些?如果是485通訊又該用什么芯片?和計算機的連接通訊腳是否可以隨 ...…

查看全部問答∨

LED環(huán)氧樹脂(Epoxy)封裝技術(shù)

LED生產(chǎn)過程中所使用的環(huán)氧樹脂(Epoxy),是LED產(chǎn)業(yè)界制作產(chǎn)品時的重點之一。環(huán)氧樹脂是泛指分子中含有兩個或兩個以上環(huán)氧基團的有機高分子化合物,除個別外,它們的相對分子品質(zhì)都不高。環(huán)氧樹脂的分子結(jié)構(gòu)是以分子鏈中含有活潑的環(huán)氧基團為其特徵,環(huán) ...…

查看全部問答∨

模糊控制用單片機編,誰試過啊

模糊控制用單片機編,誰試過啊 誰能介紹好點的資料。謝謝!!!…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 巴林左旗| 富裕县| 太和县| 凤城市| 富民县| 阿荣旗| 民和| 唐海县| 西宁市| 宜宾市| 汶川县| 搜索| 南康市| 怀安县| 淮南市| 新晃| 沈丘县| 偏关县| 孝感市| 博客| 玉树县| 无锡市| 宁德市| 辰溪县| 正阳县| 旌德县| 平湖市| 赞皇县| 长汀县| 靖江市| 岢岚县| 兰坪| 水富县| 三穗县| 东源县| 鹤山市| 泗水县| 乾安县| 平乡县| 西宁市| 土默特右旗|