在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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。 或者關注微信公眾號『記貼』,持續更新文章和學習資料,可加作者的微信交流學習!

審核編輯:湯梓紅

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

    關注

    1323

    文章

    6414

    瀏覽量

    239540
  • FlaSh
    +關注

    關注

    10

    文章

    1671

    瀏覽量

    151165
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362955
  • 存儲芯片
    +關注

    關注

    11

    文章

    931

    瀏覽量

    44008
  • stm32cubemx
    +關注

    關注

    5

    文章

    286

    瀏覽量

    16029
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    STM32CubeIDE SWV功能介紹

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

    STM32CubeIDE安裝指南

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

    巧用 STM32CubeIDE 之編譯警告

    巧用 STM32CubeIDE 之編譯警告
    的頭像 發表于 10-25 16:33 ?1405次閱讀
    巧用 <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 ?8次下載
    <b class='flag-5'>STM32CubeIDE</b>實用技巧之仿真帶外擴<b class='flag-5'>FLASH</b>的工程

    STM32CubeIDE找不到elf

    STM32CubeIDE是STMicroelectronics公司推出的一款集成開發環境(IDE),用于開發STM32系列微控制器的應用程序。它基于Eclipse開發平臺,并集成了ST的驅動程序
    的頭像 發表于 01-02 16:32 ?2715次閱讀
    主站蜘蛛池模板: 天天想天天干 | 亚洲激情四射 | 天天爽夜夜爽 | 一本到卡二卡三卡福利 | 在线播放一区二区精品产 | 久久综合九色综合欧洲 | a天堂影院 | 婷婷综合激情 | 黄 色 毛片免费 | 国产亚洲高清在线精品不卡 | 亚洲精品欧洲久久婷婷99 | 男女无遮挡一进一出性视频 | 日本成人一级片 | 婷婷九月色 | 天天做天天爱夜夜爽毛片毛片 | 欧美一级特黄aaaaaaa在线观看 | 国产一二精品 | 日本黄色小视频 | 国模伊人| 大香线蕉97久久 | 亚洲人成人77777网站 | 欧美12一13高清视频 | 欧美色吧视频在线观看 | 天天插天天射天天操 | 美女大黄三级视频在线观看 | 黄色a∨| 国产精品夜色7777青苹果 | 成人国产精品2021 | 日本一区免费在线观看 | 中日韩黄色大片 | 在线观看一区二区三区视频 | 国产精品一级毛片不收费 | 99色综合 | 美女被羞羞产奶视频网站 | 女同激情视频 | 在线观看视频你懂得 | 色狠狠狠狠综合影视 | 一级特黄国产高清毛片97看片 | 午夜视频播放 | 免费观看黄a一级视频 | 在线观看日本亚洲一区 |