chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

STM32CUBEMX(10)--Flash讀寫(xiě)

嵌入式單片機(jī)MCU開(kāi)發(fā) ? 來(lái)源:嵌入式單片機(jī)MCU開(kāi)發(fā) ? 作者:嵌入式單片機(jī)MCU開(kāi) ? 2022-11-14 16:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

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

硬件準(zhǔn)備

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

在這里插入圖片描述

選擇芯片型號(hào)

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

在這里插入圖片描述

配置時(shí)鐘

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

在這里插入圖片描述

配置時(shí)鐘樹(shù)

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

在這里插入圖片描述

串口配置

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

在這里插入圖片描述

生成工程設(shè)置

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

在這里插入圖片描述

生成代碼

在這里插入圖片描述

配置keil

在這里插入圖片描述

代碼

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

/* 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寫(xiě)函數(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 */

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

  1. 解鎖FLASH
  2. 擦除FLASH
  3. 寫(xiě)入FLASH
  4. 鎖住FLASH

擦除只能是按頁(yè)或者整塊擦除。

芯片說(shuō)明手冊(cè)下載地址:點(diǎn)擊下載

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

在這里插入圖片描述

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

我們可以寫(xiě)入到頁(yè)60中,即0x08007000-0x080073FF中。

由于單片機(jī)是32位,故連續(xù)寫(xiě)入多個(gè)uint32_t的數(shù)據(jù)時(shí),地址應(yīng)該依次增加4。

/* USER CODE BEGIN 4 */

/*FLASH寫(xiě)入程序*/
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*/
    /*擦除方式頁(yè)擦除FLASH_TYPEERASE_PAGES,塊擦除FLASH_TYPEERASE_MASSERASE*/
    /*擦除頁(yè)數(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對(duì)FLASH燒寫(xiě)*/
    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 */

演示效果

在這里插入圖片描述

通過(guò)keil查看地址也可以看到,值正確寫(xiě)入。

在這里插入圖片描述

審核編輯:湯梓紅

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

    關(guān)注

    10

    文章

    1679

    瀏覽量

    151843
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5682

    瀏覽量

    104789
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    286

    瀏覽量

    16276
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32CubeMx入門(mén)教程(6):SPI讀寫(xiě)FLAH的應(yīng)用

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

    STM32CUBEMX(10)--Flash讀寫(xiě)

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

    請(qǐng)問(wèn)如何用stm32cubemx設(shè)置FLASH讀寫(xiě)配置?

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

    stm32cubemx教程

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

    淺談stm32cubemx安裝教程

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

    如何通過(guò)STM32CubeMX制作外部Flash的燒寫(xiě)驅(qū)動(dòng) (.stdlr)

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

    通過(guò)STM32CubeMX制作外部Flash的燒寫(xiě)驅(qū)動(dòng)

    通過(guò)STM32CubeMX制作外部Flash的燒寫(xiě)驅(qū)動(dòng)(西安 嵌入式開(kāi)發(fā))-目前,越來(lái)越多的應(yīng)用需要擴(kuò)展外部的 Flash 來(lái)滿足存儲(chǔ)需求。那么,在調(diào)試及批量生產(chǎn)的過(guò)程中,需要對(duì)外擴(kuò)的 Fla
    發(fā)表于 07-30 11:20 ?18次下載
    通過(guò)<b class='flag-5'>STM32CubeMX</b>制作外部<b class='flag-5'>Flash</b>的燒寫(xiě)驅(qū)動(dòng)

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

    本系列文章匯總:STM32CubeMX系列教程本篇文章主要介紹如何使用STM32中的片內(nèi)FLash。1. 準(zhǔn)備工作硬件準(zhǔn)備開(kāi)發(fā)板首先需要準(zhǔn)備一個(gè)開(kāi)發(fā)板,這里我準(zhǔn)備的是STM32L4的開(kāi)
    發(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讀寫(xiě)

    Flash進(jìn)行讀寫(xiě),用芯片內(nèi)部Flash可以對(duì)一些需要斷電保存的數(shù)據(jù)進(jìn)行保存,無(wú)需加外部得存儲(chǔ)芯片,本例程采用的是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'>讀寫(xiě)</b>

    STM32F4內(nèi)部Flash讀寫(xiě)

    之前的文章中介紹過(guò)STM32F0列的內(nèi)部Flash讀寫(xiě)STM32CubeMX之內(nèi)部Flash讀寫(xiě)
    發(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'>讀寫(xiě)</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í)鐘晶振,因?yàn)榧夹g(shù)有限,外部Flash和ISP程序還沒(méi)寫(xiě),?
    發(fā)表于 03-27 09:21 ?5次下載

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

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

    STM8CubeMXSTM32CubeMX功能一樣嗎?

    STM8CubeMXSTM32CubeMX功能一樣嗎?
    的頭像 發(fā)表于 10-31 16:59 ?2217次閱讀
    STM8<b class='flag-5'>CubeMX</b>和<b class='flag-5'>STM32CubeMX</b>功能一樣嗎?