www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]前言今天總結(jié)“STM32F103 片內(nèi)FLASH編程”,對于學(xué)習(xí)編程的人來說“FLASH”這個(gè)詞肯定很熟悉,因?yàn)镕LASH主要用于存儲數(shù)據(jù)。對于STM32來說,內(nèi)部FLASH的容量有大有小,從16K到2M不等,主要看芯片的型號。對于剛從51或

前言

今天總結(jié)“STM32F103 片內(nèi)FLASH編程”,對于學(xué)習(xí)編程的人來說“FLASH”這個(gè)詞肯定很熟悉,因?yàn)镕LASH主要用于存儲數(shù)據(jù)。對于STM32來說,內(nèi)部FLASH的容量有大有小,從16K到2M不等,主要看芯片的型號。

對于剛從51或者430轉(zhuǎn)入學(xué)習(xí)ARM-Cortex M芯片的人來說,可能只知道內(nèi)部FLASH是拿來裝載程序的,事實(shí)上Cortex M芯片內(nèi)部FLASH的可以拿來編程的,而且還可以像外部FLASH一樣存儲數(shù)據(jù)。對,今天提供的工程就是使用內(nèi)部FLASH像外部FLASH一樣讀寫數(shù)據(jù),而且不是塊或者頁編程(即不覆蓋臨近地址數(shù)據(jù))。

在實(shí)際的開發(fā)中,內(nèi)部FLASH存儲數(shù)據(jù)也是很重要的一點(diǎn),特別是一些不常修改,而且很重要的標(biāo)志位,或者一些配置等,存儲在內(nèi)部FLASH是很常見的。但是,這個(gè)地址一定要避開程序儲存的地址(我計(jì)劃后期整理編程地址規(guī)范及要求)。

下載

今天提供下載的“軟件工程”都是在硬件板子上進(jìn)行多次測試、并保證沒問題才上傳至360云盤。

今天的軟件工程下載地址(360云盤):


https://yunpan.cn/cRs8kq9Q5hQCS訪問密碼

STM32F10x的資料可以在我360云盤下載:

https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90

內(nèi)容講解

工程概要說明: 提供工程的源代碼主要就是兩個(gè)接口,一個(gè)寫,一個(gè)讀。

void FLASH_WriteNWord(uint16_t* pBuffer, uint32_t WriteAddr, uint16_t nWord);

void FLASH_ReadNWord(uint16_t* pBuffer, uint32_t ReadAddr, uint16_t nWord);

相信經(jīng)常編程的人都明白函數(shù)接口的意思(我的命名規(guī)則還是算比較人性化的),就是和常見的訪問外部FLASH一樣,不會覆蓋數(shù)據(jù),我已經(jīng)在實(shí)際工作中應(yīng)用而且商業(yè)化了。

主要在地址“ADDR”處寫一個(gè)標(biāo)志位,在地址“ADDR + 1”連續(xù)寫一串?dāng)?shù)據(jù)。如果標(biāo)志位已經(jīng)是“寫過”,則不會再次寫入數(shù)據(jù),只會讀取數(shù)據(jù),意思就是說數(shù)據(jù)只寫一次,以后每次只是讀取數(shù)據(jù)(就是保證掉電后數(shù)據(jù)會不會丟失)。每次讀取數(shù)據(jù),通過串口打印出以前寫入的數(shù)據(jù)是否正確。

提供的工程以簡單為原則,詳細(xì)中文注釋,方便自己方便大家。

關(guān)于“STM32F103 片內(nèi)FLASH編程”我把重要的幾點(diǎn)在下面分別講述:

一、寫函數(shù)接口


該函數(shù)位于flash.c文件下面;

注意:

A.參數(shù)pBuffer是數(shù)據(jù)緩沖區(qū),是16位的,而不是8位的。(其實(shí)這里可以整理為8位的,由于時(shí)間有限,如果有需要,請微信里回復(fù)我,我抽時(shí)間整理一下)。

B.參數(shù)長度也是16位的數(shù)量。

C.地址是內(nèi)部FLASH地址,可別溢出了,也別和程序沖突。最好看看你的程序大小及芯片容量。

二、讀函數(shù)接口


該函數(shù)位于flash.c文件下面;

注意的地方和上面寫函數(shù)接口一樣,主要是參數(shù)。

三、讀寫應(yīng)用


該函數(shù)位于main.c文件下面;

藍(lán)色表示讀寫標(biāo)志位

紅色表示讀寫數(shù)據(jù)

看一下就知道程序的流程是:“數(shù)據(jù)標(biāo)志位”和“數(shù)據(jù)”都只寫一次,而每次上電讀一次標(biāo)志位,再讀數(shù)據(jù)。

這里的“數(shù)據(jù)標(biāo)志位”地址就在“數(shù)據(jù)”前面。

四、今天的重點(diǎn)



重點(diǎn)A.頁的大?。篠TM32F1小、中容量是1K,而大容量是2K,對于編程這里是有差異的。

重點(diǎn)B.STM32系列芯片中有很大一部分頁的大小都是規(guī)則的,也就是說都是1K或許2K大小,學(xué)過其他系列芯片的人可能知道,在其他很多芯片中也有不是規(guī)則的,如STM32F4中基本都不是規(guī)則的(如下圖F4芯片),有的一塊16K、128K等不規(guī)則。這樣的芯片對于今天提供的工程就不適用,今天提供工程適用于內(nèi)部FLASH規(guī)則大小的芯片。



說明

今天提供的軟件工程基于STM32F103大容量芯片,中等及小容量芯片也使用,只要修改flash.h文件一個(gè)宏(頁大小就可以)。其實(shí)只要適當(dāng)修改工程的部分配置,STM32F1的芯片都適用。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

本文中,小編將對PLC予以介紹,如果你想對它的詳細(xì)情況有所認(rèn)識,或者想要增進(jìn)對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: PLC 編程

在下述的內(nèi)容中,小編將會對PLC的相關(guān)消息予以報(bào)道,如果PLC是您想要了解的焦點(diǎn)之一,不妨和小編共同閱讀這篇文章哦。

關(guān)鍵字: PLC 編程 模塊化

-Cognizant正在籌辦全球最大規(guī)模的氛圍編程活動,以提升數(shù)千名員工的AI素養(yǎng) 為抓住人工智能經(jīng)濟(jì)將創(chuàng)造的巨大機(jī)遇,Cognizant與Lovable、Windsurf、Cursor、Gemini Code Ass...

關(guān)鍵字: 編程 NI AN PI

上海 2025年6月23日 /美通社/ -- 日前,以"匯聚?連接?創(chuàng)造"為主題的2025世界移動通信大會(MWC)上海拉開帷幕。大會期間,愛立信專家圍繞"5G-A","...

關(guān)鍵字: 愛立信 編程 網(wǎng)絡(luò) AI

北京2025年3月6日 /美通社/ -- 2025世界移動通信大會(MWC25)期間,愛立信的5G可編程網(wǎng)絡(luò)榮獲"GTI年度大獎(jiǎng)—移動技術(shù)創(chuàng)新突破獎(jiǎng)"。此次獲獎(jiǎng),標(biāo)志著愛立信的5G可編程網(wǎng)絡(luò)獲得了GT...

關(guān)鍵字: 網(wǎng)絡(luò) 愛立信 編程 TI

北京2025年3月4日 /美通社/ -- 日前,愛立信總裁兼首席執(zhí)行官鮑毅康(Börje Ekholm)在巴塞羅那舉行的2025年世界移動通信大會(MWC)上表示,移動連接將在實(shí)現(xiàn)人工智能(AI)和云技術(shù)能力方...

關(guān)鍵字: 愛立信 API AD 編程

上海2025年2月20日 /美通社/ -- 新品亮點(diǎn) 產(chǎn)品豐富:5個(gè)系列,9款產(chǎn)品,工作距離覆蓋300~3000mm 性能出眾:采集時(shí)間0.3s,不懼反光,精度最高0.03mm@300mm 應(yīng)用廣泛:支...

關(guān)鍵字: 3D視覺 相機(jī) 編程 機(jī)器人系統(tǒng)

防御性編程是指一種預(yù)見代碼可能出現(xiàn)問題并提前采取措施來防止這些問題發(fā)生的編程風(fēng)格。在前端開發(fā)中,這尤其重要,因?yàn)槟愕拇a直接與用戶交互,任何錯(cuò)誤都可能導(dǎo)致糟糕的用戶體驗(yàn),甚至安全漏洞。

關(guān)鍵字: 代碼 編程

防御性編程是一種編程策略,旨在通過考慮到各種可能的錯(cuò)誤和異常情況,確保程序在任何情況下都能正常工作。這種方法強(qiáng)調(diào)在編碼過程中盡可能早地發(fā)現(xiàn)并處理錯(cuò)誤,以避免在運(yùn)行時(shí)出現(xiàn)未預(yù)見的問題。

關(guān)鍵字: C語言 編程

在科技發(fā)展的浪潮中,編程成為了連接數(shù)字世界與現(xiàn)實(shí)世界的橋梁。然而,編程的力量既是雙刃劍,既能創(chuàng)造奇跡,也可能帶來災(zāi)難。本文旨在探討如何通過最少的代碼導(dǎo)致計(jì)算機(jī)硬件永久不可逆損壞,但更重要的是,強(qiáng)調(diào)這種行為的危險(xiǎn)性和不道德...

關(guān)鍵字: 計(jì)算機(jī)硬件 編程
關(guān)閉