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

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

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

3天內不再提示

STM32CUBEMX(10)--Flash讀寫

嵌入式單片機MCU開發 ? 來源:嵌入式單片機MCU開發 ? 作者:嵌入式單片機MCU開 ? 2022-11-14 16:36 ? 次閱讀

概述

本例程主要講解如何對芯片自帶Flash進行讀寫,用芯片內部Flash可以對一些需要斷電保存的數據進行保存,無需加外部得存儲芯片,本例程采用的是STM32F030R8T6,64K大小的Flash。

硬件準備

首先需要準備一個開發板,這里我準備的是NUCLEO-F030R8的開發板:

在這里插入圖片描述

選擇芯片型號

使用STM32CUBEMX選擇芯片stm32f030r8,如下所示:

在這里插入圖片描述

配置時鐘

HSE與LSE分別為外部高速時鐘和低速時鐘,在本文中使用內置的時鐘源,故都選擇Disable選項,如下所示:

在這里插入圖片描述

配置時鐘樹

STM32F0的最高主頻到48M,所以配置48即可:

在這里插入圖片描述

串口配置

本次實驗使用的串口1進行串口通信,波特率配置為115200。

在這里插入圖片描述

生成工程設置

注意在生產工程設置中不能出現中文,不然會報錯。

在這里插入圖片描述

生成代碼

在這里插入圖片描述

配置keil

在這里插入圖片描述

代碼

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

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

函數聲明和串口重定向:

/* USER CODE BEGIN PV */
void WriteFlashTest(uint32_t L,uint32_t Data[],uint32_t addr);//flash寫函數
void PrintFlashTest(uint32_t L,uint32_t addr);//flash讀取
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */


int fputc(int ch, FILE *f)
{
    HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1, 0xFFFF);
    return ch;
}
/* USER CODE END PV */

變量定義:

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

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

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

擦除只能是按頁或者整塊擦除。

芯片說明手冊下載地址:點擊下載

STM32F030芯片內部的Flash存儲器內存分布如下:

在這里插入圖片描述

STM32F030R8T6的Flash容量是64KB,所以只有63頁,每頁1KB。

我們可以寫入到頁60中,即0x08007000-0x080073FF中。

由于單片機是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;i4*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;iprintf("
addr 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 */

演示效果

在這里插入圖片描述

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

在這里插入圖片描述

審核編輯:湯梓紅

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

    關注

    10

    文章

    1668

    瀏覽量

    151087
  • 開發板
    +關注

    關注

    25

    文章

    5565

    瀏覽量

    102765
  • stm32cubemx
    +關注

    關注

    5

    文章

    286

    瀏覽量

    16006
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    STM32CubeMx入門教程(6):SPI讀寫FLAH的應用

    導語“本教程將使用CubeMX初始化SPI,使用SPI對W25Q64 FLASH進行讀寫操作,通過HAL庫的讀寫應用來數據FLASH的操作細
    發表于 07-12 11:32 ?3701次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(6):SPI<b class='flag-5'>讀寫</b>FLAH的應用

    STM32CUBEMX(10)--Flash讀寫

    概述 本例程主要講解如何對芯片自帶Flash進行讀寫,用芯片內部Flash可以對一些需要斷電保存的數據進行保存,無需加外部得存儲芯片,本例程采用的是STM32F030R8T6,64K大
    發表于 09-10 15:36

    請問如何用stm32cubemx設置FLASH讀寫配置?

    如何用stm32cubemx 設置 FLASH讀寫配置?
    發表于 11-19 08:51

    stm32cubemx教程

    stm32cubemx教程,需要學習的看看,免積分
    發表于 11-02 10:16 ?0次下載

    淺談stm32cubemx安裝教程

    STM32CubeMX介紹、下載與安裝
    的頭像 發表于 03-25 10:57 ?2w次閱讀
    淺談<b class='flag-5'>stm32cubemx</b>安裝教程

    如何通過STM32CubeMX制作外部Flash的燒寫驅動 (.stdlr)

    通過 STM32CubeMX制作外部Flash的燒寫驅動 (.stdlr) 前言 ? 目前,越來越多的應用需要擴展外部的Flash來滿足存儲需求。那么,在調試及批量生產的過程中,需要對外擴
    的頭像 發表于 01-08 17:56 ?7610次閱讀
    如何通過<b class='flag-5'>STM32CubeMX</b>制作外部<b class='flag-5'>Flash</b>的燒寫驅動 (.stdlr)

    STM32CubeMX | 28 - STM32片內Flash的使用

    本系列文章匯總:STM32CubeMX系列教程本篇文章主要介紹如何使用STM32中的片內FLash。1. 準備工作硬件準備開發板首先需要準備一個開發板,這里我準備的是STM32L4的開
    發表于 12-01 20:36 ?7次下載
    <b class='flag-5'>STM32CubeMX</b> | 28 - <b class='flag-5'>STM32</b>片內<b class='flag-5'>Flash</b>的使用

    STM32CUBEMX(10)--Flash讀寫

    Flash進行讀寫,用芯片內部Flash可以對一些需要斷電保存的數據進行保存,無需加外部得存儲芯片,本例程采用的是STM32F030R8T6,64K大小的
    發表于 12-02 11:21 ?11次下載
    <b class='flag-5'>STM32CUBEMX</b>(<b class='flag-5'>10</b>)--<b class='flag-5'>Flash</b><b class='flag-5'>讀寫</b>

    STM32F4內部Flash讀寫

    之前的文章中介紹過STM32F0列的內部Flash讀寫STM32CubeMX之內部Flash讀寫
    發表于 12-02 11:36 ?32次下載
    <b class='flag-5'>STM32</b>F4內部<b class='flag-5'>Flash</b><b class='flag-5'>讀寫</b>

    STM32學習之STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1下載地址)

    STM32學習之STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1下載地址)
    發表于 12-07 11:51 ?28次下載
    <b class='flag-5'>STM32</b>學習之<b class='flag-5'>STM32cubeMX</b>軟件安裝與使用(附<b class='flag-5'>STM32cubeMX</b>5.2.1下載地址)

    STM32CubeMX 窗口及工具介紹

    STM32CubeMX 系列教程之 STM32CubeMX 窗口及 STM32PackCreator 工具介紹,內附詳細圖文介紹。
    發表于 12-14 18:51 ?27次下載
    <b class='flag-5'>STM32CubeMX</b> 窗口及工具介紹

    Keil STM32CubeMX資料包

    Keil STM32CubeMX資料包。STM32CubeMX設置了TM2為編碼器接口,串口,外部Flsh,ISP,外部時鐘晶振,因為技術有限,外部Flash和ISP程序還沒寫,?
    發表于 03-27 09:21 ?5次下載

    STM32CUBEMX開發GD32F303(17)----內部Flash讀寫

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過開發板內進行驗證。 本例程主要講解如何對芯片自帶Flash進行讀寫,用芯片內部
    的頭像 發表于 07-27 09:35 ?2357次閱讀
    <b class='flag-5'>STM32CUBEMX</b>開發GD32F303(17)----內部<b class='flag-5'>Flash</b><b class='flag-5'>讀寫</b>

    通過STM32CubeMX制作外部Flash的燒寫驅動(.stdlr)

    電子發燒友網站提供《通過STM32CubeMX制作外部Flash的燒寫驅動(.stdlr).pdf》資料免費下載
    發表于 08-01 11:12 ?7次下載
    通過<b class='flag-5'>STM32CubeMX</b>制作外部<b class='flag-5'>Flash</b>的燒寫驅動(.stdlr)

    STM8CubeMXSTM32CubeMX功能一樣嗎?

    STM8CubeMXSTM32CubeMX功能一樣嗎?
    的頭像 發表于 10-31 16:59 ?2151次閱讀
    STM8<b class='flag-5'>CubeMX</b>和<b class='flag-5'>STM32CubeMX</b>功能一樣嗎?
    主站蜘蛛池模板: 天天综合在线观看 | 黄色高清视频网站 | 日日射夜夜 | 国产成在线人视频免费视频 | 天堂视频免费在线观看 | 你懂得视频在线 | 亚洲国产成人久久77 | 俺要色 | 国产簧片| 69日本xxxxxxxxx29 69日本xxxxxxxxx30 | 日本精品三级 | 三级黄网站| 视频在线观看高清免费看 | 一级特黄女人生活片 | 伊人久久大香线蕉电影院 | 在线不卡一区 | 三级黄网站| 天堂网在线.www天堂在线 | 国产成人精品曰本亚洲77美色 | 毛片黄色| 成人国产激情福利久久精品 | 黄色国产视频 | 久久婷婷综合中文字幕 | 免费观看视频在线观看 | 666精品国产精品亚洲 | 国产小片 | 成年人污视频 | 成人99国产精品 | 色黄网站| 韩国一级网站 | 午夜视频在线观看视频 | 亚洲国产精品久久网午夜 | 香蕉成人国产精品免费看网站 | 天天摸天天碰天天碰 | 免费v片网站 | 国产婷婷色 | 人人免费人人专区 | 午夜黄色网 | 三级毛片在线看 | 天天做天天爱天天影视综合 | 四虎新地址4hu 你懂的 |