色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

STM32F1_ 片內FLASH編程

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-04-08 10:28 ? 次閱讀

前言

今天總結“STM32F103片內FLASH編程”,對于學習編程的人來說“FLASH”這個詞肯定很熟悉,因為FLASH主要用于存儲數據。對于STM32來說,內部FLASH的容量有大有小,從16K到2M不等,主要看芯片的型號。

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

在實際的開發中,內部FLASH存儲數據也是很重要的一點,特別是一些不常修改,而且很重要的標志位,或者一些配置等,存儲在內部FLASH是很常見的。但是,這個地址一定要避開程序儲存的地址(我計劃后期整理編程地址規范及要求)。

每天總結的不僅僅是基礎,而是重點,不起眼的重點,容易被人忽視的重點。關注微信公眾號“EmbeddDeveloper”還有更多精彩等著你。

下載

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

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

https://yunpan.cn/cSFA6h6kwu5jb訪問密碼 bc34

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

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

內容講解

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

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

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

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

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

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

關于“STM32F103 片內FLASH編程”我把重要的幾點在下面分別講述:

一、寫函數接口


該函數位于flash.c文件下面;

注意:

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

B.參數長度也是16位的數量。

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

二、讀函數接口


該函數位于flash.c文件下面;

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

三、讀寫應用


該函數位于main.c文件下面;

藍色表示讀寫標志位

紅色表示讀寫數據

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

這里的“數據標志位”地址就在“數據”前面。

四、今天的重點


重點A.頁的大小:STM32F1小、中容量是1K,而大容量是2K,對于編程這里是有差異的。

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

說明

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

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

    關注

    10

    文章

    1633

    瀏覽量

    147942
  • STM32F103
    +關注

    關注

    33

    文章

    477

    瀏覽量

    63600
  • STM32F10
    +關注

    關注

    0

    文章

    45

    瀏覽量

    15624
收藏 人收藏

    評論

    相關推薦

    自制一款兼容STM32F1/F4芯片的飛控板

    自己制作的一款兼容STM32F1/F4芯片的飛控板。
    發表于 07-04 14:07 ?0次下載

    【GD32F303紅楓派開發板使用手冊】第五講 FMC-Flash擦寫讀實驗

    MC即Flash控制器,其提供了Flash操作所需要的所有功能,在GD32F303系列MCU中,Flash前256K字節空間內,?CPU
    的頭像 發表于 06-02 10:05 ?768次閱讀
    【GD32<b class='flag-5'>F</b>303紅楓派開發板使用手冊】第五講 FMC-<b class='flag-5'>片</b><b class='flag-5'>內</b><b class='flag-5'>Flash</b>擦寫讀實驗

    STM32F207擦除FLASH,退出DEBUG無法執行下一步程序是怎么回事?

    由于項目需求,需要擦除指定空間,然后從SPI_FLASH中加載程序運行 問題如下:: 在DEBUG模式下,執行擦除程序后,則退出DEBUG,無法執行下一步程序 擦除代碼如下: 1
    發表于 04-23 07:46

    STM32H750flash對同一flash地址做二次修改出錯是哪里的問題?

    各位大佬好,又是我,是的,我在H750的flash里游不出去了…… 下面詳細介紹我的使用方法和出現的問題: 我在程序里面擬定在flash地址0x08001000~0x080010
    發表于 04-23 06:16

    stm32f207flash的前114個字節莫名其妙的變成了0x00的原因?

    stm32f207flash的前114個字節莫名其妙的變成了0x00,這是什么問題??會有哪些原因呢?沒有對0x8000000 開始的地址操作,因為這段地址是放應用程序的。
    發表于 04-22 07:00

    【GD32H757Z海棠派開發板使用手冊】第四講 FMC-Flash擦寫讀實驗

    FMC即Flash控制器,其提供了Flash操作所需要的所有功能,在GD32H7XX系列MCU中,具有高達3840KB字節的上閃存可用于存儲指令或數據。FMC也提供了扇區擦除和整
    的頭像 發表于 04-19 10:09 ?1257次閱讀
    【GD32H757Z海棠派開發板使用手冊】第四講 FMC-<b class='flag-5'>片</b><b class='flag-5'>內</b><b class='flag-5'>Flash</b>擦寫讀實驗

    STM32F746 QSPI的Flash擴展后,添加到工程下載發現報錯,為什么?

    使用 W25Q128 模塊 ,使用的是微雪STM32F746IGT6的開發板,在QSPI進行Flash擴展了解發現需要做一個.FLM的Flash編程算法,我找一個
    發表于 04-17 06:31

    stm32g030f6p6 flash快速編程總是失敗的原因?

    使用stm32g030f6p6 對flash快速編程時總是第一次可以正常的寫,第二次寫就失敗,失敗地方總在 HAL_FLASH_Program這條函數,這個地方卡了好幾個星期了,現在請
    發表于 04-07 07:32

    STM32關于FLASH編程對齊錯誤標志位(PGAERR)的疑問求解

    大神們,我現在正在做一個應用,需要熟悉STM32F4的FLASH的任何錯誤標識,以用于特殊情況下的錯誤標識判斷做相應處理,但是針對FLASH編程對齊錯誤標志(PGAERR)與我理解不
    發表于 03-22 07:59

    通用bootloader選“支持spi flash”,無論設定download為還是flash啟動都找不到at45db161,為什么?

    通用bootloader不選“支持spi flash”,download放于flash,正常啟動,ota正常,app驅動at45db161讀寫正常。通用bootloader選“支持
    發表于 03-22 07:45

    請問flash一般能擦寫多少次?

    請問flash一般能擦寫多少次
    發表于 02-19 08:32

    STM32無法進入上Bootloader的處理方法

    STM32無法進入上Bootloader的處理方法? 當STM32芯片無法進入上Bootloader時,我們需要采取一系列的處理方法來解決這個問題。以下將詳細介紹一些常見的處理方法
    的頭像 發表于 02-02 14:33 ?2046次閱讀

    stm32 flash寫數據怎么存儲的

    stm32 flash寫數據怎么存儲的? STM32是一款廣泛應用于嵌入式系統開發的微控制器,它的Flash存儲器是其中一個重要的組成部分。在本文中,我將詳細介紹
    的頭像 發表于 01-31 15:46 ?2362次閱讀

    stm32f103 flash模擬eeprom

    STM32F103的Flash存儲器可以模擬EEPROM的功能,在本文中我們將詳細介紹如何使用STM32F103的Flash存儲器來實現EEPROM。 概述 EEPROM(Elect
    的頭像 發表于 01-09 11:21 ?2027次閱讀

    GD32F系列MCUFlash中Code區和Data區使用解密

    GD32F系列MCU產品Flash分Code區和Data區,以GD32F303系列為例,從GD32F303xx Datasheet中可以
    的頭像 發表于 01-09 10:07 ?2749次閱讀
    GD32<b class='flag-5'>F</b>系列MCU<b class='flag-5'>片</b>上<b class='flag-5'>Flash</b>中Code區和Data區使用解密
    主站蜘蛛池模板: 欧美多人群p刺激交换电影| 亚洲视频黄| www.伊人网| 九九热精品在线观看| 午夜天堂一区人妻| 国产99在线视频| 人与人特黄一级| chinese极品嫩模videos| 妈妈的朋友5在线观看免费完整版中文| 亚洲高清国产拍精品5g| 国产东北男同志videos网站| 日本高清不卡码无码v亚洲| a级销魂美女| 女生扒开尿口| 99久久国产免费福利| 乱VODAFONEWIFI熟妇| 在线色av| 老师破女学生特级毛片| 在线观看永久免费网址| 久久精麻豆亚洲AV国产品| 亚洲色图在线观看视频| 狠狠色欧美亚洲狠狠色www | 私密按摩师在线观看 百度网盘| 被六个男人躁到一夜同性| 人人啪日日观看在线| 超碰97 总站 中文字幕| 人妻体内射精一区二区| 成 人 网 站免费观看| 日本久久黄色| 东北老妇人70OLDMAN| 熟妇内谢69XXXXXA片| 国产精品久久久久久搜索| 午夜噜噜噜私人影院在线播放| 国产精品你懂的在线播放| 校花在公车上被内射好舒| 国产亚洲欧美日韩综合综合二区| 亚洲国产综合久久精品| 极品虎白在线观看| 综合激情区视频一区视频二区| 蜜饯1V1高H-| 被六个男人躁到一夜同性|