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

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

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

3天內不再提示

STM32CUBEIDE(16)----內部Flash讀寫

嵌入式單片機MCU開發 ? 來源:嵌入式單片機MCU開發 ? 作者:嵌入式單片機MCU開 ? 2023-07-27 09:24 ? 次閱讀

概述

本例程主要講解如何對芯片自帶Flash進行讀寫,用芯片內部Flash可以對一些需要斷電保存的數據進行保存,無需加外部得存儲芯片,本例程采用的是STM32F103RBT6,128K大小的Flash。 最近在弄ST和GD的課程,需要GD樣片的可以加群申請:615061293 。

視頻教學

[https://www.bilibili.com/video/BV19d4y1Y7Px/]

csdn課程

課程更加詳細。

[https://download.csdn.net/course/detail/35611]

硬件準備

使用STM32CUBEMX生成例程,這里使用NUCLEO-F103RB開發板

在這里插入圖片描述

查看原理圖,PA2和PA3設置為開發板的串口。

在這里插入圖片描述

配置串口。

在這里插入圖片描述

查看原理圖,PA8設置為PWM輸出管腳,PA0設置為定時器輸入捕獲管腳。

在這里插入圖片描述

配置時鐘

配置時鐘為64M。

在這里插入圖片描述

串口重定向

在main.c中,添加頭文件,若不添加會出現 identifier "FILE" is undefined報錯。

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

函數聲明和串口重定向:

/* USER CODE BEGIN PFP */
/* retarget the C library printf function to the USART */
int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}
/* USER CODE END PFP */

FLASH定義

對于STM32F103,有低、鐘、高密度的FLASH類型。

在這里插入圖片描述

低密度

在這里插入圖片描述

中密度

在這里插入圖片描述

高密度

在這里插入圖片描述

對于STM32F103RB,FLASH大小為128KB,固為中密度的Flash。

變量定義

/* USER CODE BEGIN 0 */
uint32_t WriteFlashData[3] = {0x11111111,0x22222222,0x33333333};//數據
uint32_t addr = 0x0801FC00;
/* USER CODE END 0 */

如果要對FLASH進行寫入數據,需要執行以下四步:

  1. 解鎖FLASH
  2. 擦除FLASH
  3. 寫入FLASH
  4. 鎖住FLASH

擦除只能是按頁或者整塊擦除。 STM32F103RBT6的Flash容量是128KB,所以只有128頁,每頁1KB。 我們可以寫入到頁127中,即0x0801FC00-0x0801FFFF中。 由于單片機是32位,故連續寫入多個uint32_t的數據時,地址應該依次增加4。

/* USER CODE BEGIN 4 */

/*FLASH寫入程序*/
void WriteFlashTest(uint32_t L,uint32_t Data[],uint32_t addr)
{
    uint32_t i=0;
    /* 1/4解鎖FLASH*/
    HAL_FLASH_Unlock();
    /* 2/4擦除FLASH*/
    /*初始化FLASH_EraseInitTypeDef*/
    /*擦除方式頁擦除FLASH_TYPEERASE_PAGES,塊擦除FLASH_TYPEERASE_MASSERASE*/
    /*擦除頁數*/
    /*擦除地址*/
    FLASH_EraseInitTypeDef FlashSet;
    FlashSet.TypeErase = FLASH_TYPEERASE_PAGES;
    FlashSet.PageAddress = addr;
    FlashSet.NbPages = 1;
    /*設置PageError,調用擦除函數*/
    uint32_t PageError = 0;
    HAL_FLASHEx_Erase(&FlashSet, &PageError);
    /* 3/4對FLASH燒寫*/
    for(i=0;i< L;i++)
    {
        HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, addr+4*i, Data[i]);
    }
    /* 4/4鎖住FLASH*/
    HAL_FLASH_Lock();
}


/*FLASH讀取打印程序*/
void PrintFlashTest(uint32_t L,uint32_t addr)
{
    uint32_t i=0;
    for(i=0;i< L;i++)
    {
        printf("naddr is:0x%x, data is:0x%x", addr+i*4,  *(__IO uint32_t*)(addr+i*4));
    }

}
/* USER CODE END 4 */

主程序

/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */        
        WriteFlashTest(3,WriteFlashData,addr);
        PrintFlashTest(3,addr);
        HAL_Delay(5000);
  }
  /* USER CODE END 3 */

演示效果

在這里插入圖片描述

通過STM32CUBEIDE查看地址也可以看到,值正確寫入。

在這里插入圖片描述

最后

以上的代碼會在Q群里分享。QQ群:615061293。 或者關注微信公眾號『記貼』,持續更新文章和學習資料,可加作者的微信交流學習!

審核編輯:湯梓紅

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

    關注

    1300

    文章

    6358

    瀏覽量

    234916
  • FlaSh
    +關注

    關注

    10

    文章

    1642

    瀏覽量

    148455
  • STM32
    +關注

    關注

    2271

    文章

    10923

    瀏覽量

    357106
  • 存儲芯片
    +關注

    關注

    11

    文章

    901

    瀏覽量

    43234
  • stm32cubemx
    +關注

    關注

    5

    文章

    284

    瀏覽量

    14915
收藏 人收藏

    評論

    相關推薦

    STM32CubeIDE軟件實現STM32外部中斷實例

    本文用STM32CubeIDE軟件實現STM32外部中斷實例。
    的頭像 發表于 08-24 09:09 ?4434次閱讀

    STM32CubeIDE SWV功能介紹

    01 引言 STM32CubeIDE是ST官方推出的集成開發環境,集成了很多STM32的調試與開發工具。本文主要介紹如何使用SWV功能來打印輸出。 02 問題描述 客戶使用STM32CubeIDE
    的頭像 發表于 10-13 14:20 ?3814次閱讀
    <b class='flag-5'>STM32CubeIDE</b> SWV功能介紹

    Ubuntu 18.04 安裝 STM32CubeIDE 小記

    Ubuntu 18.04 安裝 STM32CubeIDE 小記
    發表于 11-18 17:36 ?9次下載
    Ubuntu 18.04 安裝 <b class='flag-5'>STM32CubeIDE</b> 小記

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內存QSPI FLASH執行用戶代碼

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內存QSPI FLASH執行用戶代碼
    發表于 12-02 09:21 ?14次下載
    <b class='flag-5'>STM32CubeIDE</b> XiP 和 BootROM介紹, XiP外部內存QSPI <b class='flag-5'>FLASH</b>執行用戶代碼

    STM32CubeIDE使用

    參考STM32CubeIDE屬于一站式工具,本文帶你體驗它的強大第一個STM32CubeIDE項目STM32CubeIDE使用記錄STM32CubeIDE使用筆記(03):使用ST-L
    發表于 12-02 17:21 ?29次下載
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初識

    STM32CubeIDE初識
    發表于 12-02 18:36 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>初識

    STM32CubeIDE安裝-NSIS Error問題

    STM32CubeIDE安裝-NSIS Error問題
    發表于 12-03 21:06 ?18次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝-NSIS Error問題

    STM32CubeIDE的MCU開發

    以前做stm32嵌入式開發均使用的是破解版的keil軟件,現在工作需要無法按照此步驟進行,最近針對ST官方免費軟件STM32CubeIDE進行了相關調研工作。1 STM32CubeIDE簡介目前主流
    發表于 12-05 12:21 ?25次下載
    <b class='flag-5'>STM32CubeIDE</b>的MCU開發

    第一個STM32CubeIDE項目

    使用STM32CubeIDE的第一個項目開始第一個項目添加代碼今天開始做一個STM32CubeIDE的第一個項目,首先需要說明的:STM32CubeIDE是一個免費的軟件開始第一個項目在文件菜單中選
    發表于 12-29 19:29 ?11次下載
    第一個<b class='flag-5'>STM32CubeIDE</b>項目

    STM32CubeIDE生成的工程

    近日接到一客戶需求,其欲在 STM32CubeIDE 中指定堆(Heap)的地址到某一專用的RAM 中。
    的頭像 發表于 07-27 09:40 ?1814次閱讀

    STM32CubeIDE安裝指南

    電子發燒友網站提供《STM32CubeIDE安裝指南.pdf》資料免費下載
    發表于 08-01 15:44 ?6次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝指南

    巧用 STM32CubeIDE 之編譯警告

    巧用 STM32CubeIDE 之編譯警告
    的頭像 發表于 10-25 16:33 ?1056次閱讀
    巧用 <b class='flag-5'>STM32CubeIDE</b> 之編譯警告

    STM32CubeIDE快速入門指南

    電子發燒友網站提供《STM32CubeIDE快速入門指南.pdf》資料免費下載
    發表于 09-19 14:29 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>快速入門指南

    STM32CubeIDE實用技巧之仿真帶外擴FLASH的工程

    電子發燒友網站提供《STM32CubeIDE實用技巧之仿真帶外擴FLASH的工程.pdf》資料免費下載
    發表于 09-19 16:55 ?7次下載
    <b class='flag-5'>STM32CubeIDE</b>實用技巧之仿真帶外擴<b class='flag-5'>FLASH</b>的工程

    STM32CubeIDE找不到elf

    STM32CubeIDE是STMicroelectronics公司推出的一款集成開發環境(IDE),用于開發STM32系列微控制器的應用程序。它基于Eclipse開發平臺,并集成了ST的驅動程序
    的頭像 發表于 01-02 16:32 ?1982次閱讀
    主站蜘蛛池模板: 无遮挡h肉3d动漫在线观看 | 蜜臀久久99精品久久久久久做爰 | 欧美乱子YELLOWVIDEO | 国产午夜精品AV一区二区麻豆 | 欧美一区二区视频97色伦 | caoporn 在线视频 | 亚洲 欧美 国产 伦 综合 | 老熟女重囗味HDXX | 强开乳罩摸双乳吃奶视频 | 双手绑在床头调教乳尖 | 一线高清视频在线播放 | 国产中的精品AV一区二区 | 亚洲 欧美 国产 综合 播放 | 99精品视频免费在线观看 | 2019久久这里只精品热在线观看 | 最新国产av.在线视频 | 97成人碰碰在线人妻少妇 | 麻豆啊传媒app黄版破解免费 | 狂野欧美性猛XXXX乱大交 | 熟女少妇内射日韩亚洲 | 红尘影院手机在线观看 | 黄色网址在线看 | 99久久精品免费看国产一区二区 | 国产欧美精品一区二区三区-老狼 | 啊灬啊灬啊灬快灬深高潮啦 | 美女被C污黄网站免费观看 美女白虎穴 | 沈阳熟女露脸对白视频 | 天天躁人人躁人人躁狂躁 | 色爱区综合激情五月综合激情 | 九九精彩视频在线观看视频 | 婷婷五月久久精品国产亚洲 | 国产激情视频在线观看 | 久久久这里有精品999 | 久久婷婷五月免费综合色啪 | 操老太太的逼 | 日韩爽爽影院在线播放 | 天美传媒在线完整免费观看网站 | 亚洲男人天堂网 | 久久亚洲精品无码A片大香大香 | 在线高清电影理论片4399 | 国产制服丝袜91在线 |