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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32CUBEMX(10)--Flash讀寫

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

概述

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

硬件準(zhǔn)備

首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是NUCLEO-F030R8的開發(fā)板:

在這里插入圖片描述

選擇芯片型號

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

在這里插入圖片描述

配置時鐘

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

在這里插入圖片描述

配置時鐘樹

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

在這里插入圖片描述

串口配置

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

在這里插入圖片描述

生成工程設(shè)置

注意在生產(chǎn)工程設(shè)置中不能出現(xiàn)中文,不然會報錯。

在這里插入圖片描述

生成代碼

在這里插入圖片描述

配置keil

在這里插入圖片描述

代碼

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

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

函數(shù)聲明和串口重定向:

/* USER CODE BEGIN PV */
void WriteFlashTest(uint32_t L,uint32_t Data[],uint32_t addr);//flash寫函數(shù)
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};//數(shù)據(jù)
uint32_t addr = 0x08007000;
/* USER CODE END 0 */

如果要對FLASH進(jìn)行寫入數(shù)據(jù),需要執(zhí)行以下四步:

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

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

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

STM32F030芯片內(nèi)部的Flash存儲器內(nèi)存分布如下:

在這里插入圖片描述

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

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

由于單片機是32位,故連續(xù)寫入多個uint32_t的數(shù)據(jù)時,地址應(yīng)該依次增加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*/
    /*擦除頁數(shù)*/
    /*擦除地址*/
    FLASH_EraseInitTypeDef FlashSet;
    FlashSet.TypeErase = FLASH_TYPEERASE_PAGES;
    FlashSet.PageAddress = addr;
    FlashSet.NbPages = 1;
    /*設(shè)置PageError,調(diào)用擦除函數(shù)*/
    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查看地址也可以看到,值正確寫入。

在這里插入圖片描述

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1644

    瀏覽量

    148708
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5124

    瀏覽量

    98253
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    284

    瀏覽量

    15023
收藏 人收藏

    評論

    相關(guān)推薦

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

    導(dǎo)語“本教程將使用CubeMX初始化SPI,使用SPI對W25Q64 FLASH進(jìn)行讀寫操作,通過HAL庫的讀寫應(yīng)用來數(shù)據(jù)FLASH的操作細(xì)
    發(fā)表于 07-12 11:32 ?3173次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(6):SPI<b class='flag-5'>讀寫</b>FLAH的應(yīng)用

    STM32CUBEMX(10)--Flash讀寫

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

    請問如何用stm32cubemx設(shè)置FLASH讀寫配置?

    如何用stm32cubemx 設(shè)置 FLASH讀寫配置?
    發(fā)表于 11-19 08:51

    stm32cubemx教程

    stm32cubemx教程,需要學(xué)習(xí)的看看,免積分
    發(fā)表于 11-02 10:16 ?0次下載

    淺談stm32cubemx安裝教程

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

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

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

    STM32CubeMX | 28 - STM32片內(nèi)Flash的使用

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

    STM32CUBEMX(10)--Flash讀寫

    Flash進(jìn)行讀寫,用芯片內(nèi)部Flash可以對一些需要斷電保存的數(shù)據(jù)進(jìn)行保存,無需加外部得存儲芯片,本例程采用的是STM32F030R8T6,64K大小的
    發(fā)表于 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內(nèi)部Flash讀寫

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

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

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

    STM32CubeMX 窗口及工具介紹

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

    Keil STM32CubeMX資料包

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

    STM32CUBEMX開發(fā)GD32F303(17)----內(nèi)部Flash讀寫

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

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

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

    STM8CubeMXSTM32CubeMX功能一樣嗎?

    STM8CubeMXSTM32CubeMX功能一樣嗎?
    的頭像 發(fā)表于 10-31 16:59 ?1892次閱讀
    STM8<b class='flag-5'>CubeMX</b>和<b class='flag-5'>STM32CubeMX</b>功能一樣嗎?
    主站蜘蛛池模板: 色秀视频免费网站在线观看 | 国产三a级日本三级日产三级 | 黄色三级录像 | 欧美综合影院 | 久久精品94精品久久精品 | 国产成人啪午夜精品网站男同 | 黄视频网站在线 | 丁香六月综合网 | 国产精品波多野结衣 | 欧美性色黄| 国产激烈床戏无遮挡在线观看 | 中文天堂最新版www 中文天堂最新版在线精品 中文天堂最新版在线中文 中文天堂最新版资源新版天堂资源 | 国产主播一区二区 | 亚洲一区二区三区首页 | 免费一级毛片在级播放 | 免费高清视频免费观看 | 综合色爱| 久草视频这里只有精品 | 亚洲人xx视频 | 五月天福利视频 | 午夜剧场操一操 | 国产综合视频在线观看 | 97一区二区三区 | 真实子伦视频不卡 | 黄色的视频网站在线观看 | 国内精品久久久久影院免费 | 婷婷丁香激情五月 | 人人做天天爱夜夜爽中字 | 东北老女人啪啪对白 | 神马午夜在线观看 | 欧美一级片在线免费观看 | 狠狠色丁香婷婷综合久久来 | 性夜影院爽黄a爽免费看网站 | 农村一级片 | 欧美极品xxxxⅹ另类 | 综合色视频 | 干人人| 日韩特级毛片 | 亚洲国产精品久久精品怡红院 | 91三级在线观看 | 亚洲午夜久久久久久噜噜噜 |