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

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

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

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

CH32V103系列MCU內(nèi)部FLASH讀寫操作方式

CHANBAEK ? 來(lái)源:CSDN-借過(guò)風(fēng)景 ? 作者:CSDN-借過(guò)風(fēng)景 ? 2023-01-31 15:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡(jiǎn)介

CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開(kāi)源指令集設(shè)計(jì)。片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源管理、通用DMA控制器。此系列具有1路USB2.0主機(jī)/設(shè)備接口、多通道12位ADC轉(zhuǎn)換模塊、多通道TouchKey、多組定時(shí)器、多路IIC/USART/SPI接口等豐富的外設(shè)資源。

本章教程將通過(guò)程序代碼進(jìn)行內(nèi)部FLASH讀寫操作。

1、CH32V103內(nèi)部FLASH簡(jiǎn)介及相關(guān)函數(shù)介紹

CH32V103芯片含有一個(gè)內(nèi)部FLASH,其存儲(chǔ)數(shù)據(jù)在掉電后不會(huì)丟失,主要用于存儲(chǔ)程序代碼。芯片在重新上電并復(fù)位后,可通過(guò)加載讀取內(nèi)部FLASH中程序代碼運(yùn)行。

通常,我們可通過(guò)兩種方式對(duì)內(nèi)部FLASH進(jìn)行讀寫:一是通過(guò)下載器等外部工具讀寫內(nèi)部FLASH,二是通過(guò)芯片運(yùn)行程序代碼讀取自身內(nèi)部FLASH。本章即通過(guò)第二種方法進(jìn)行內(nèi)部FLASH讀寫。此外,就讀寫速度而言,讀寫內(nèi)部FLASH比外部FLASH快的多,且由于內(nèi)部FLASH掉電后數(shù)據(jù)不會(huì)丟失,因此內(nèi)部FLASH剩余空間可用于存儲(chǔ)重要數(shù)據(jù)和關(guān)鍵記錄。

由于內(nèi)部FLASH可被通過(guò)外部工具或程序代碼讀寫,為了防止內(nèi)部FLASH中存儲(chǔ)數(shù)據(jù)被獲取,某些應(yīng)用會(huì)禁止讀寫內(nèi)部FLASH內(nèi)容,或在第一次運(yùn)行時(shí)計(jì)算加密信息并記錄到某些區(qū)域,然后刪除自身的部分加密代碼,這些應(yīng)用都涉及到內(nèi)部FLASH的操作。

CH32V103內(nèi)部FLASH主要包含主存儲(chǔ)器和信息塊兩塊區(qū)域,其中信息塊又可被分為兩塊系統(tǒng)引導(dǎo)代碼存儲(chǔ)區(qū)域、用戶選擇字和廠商配置字區(qū)域。其中,主存儲(chǔ)器區(qū)域主要用于用戶的應(yīng)用程序存儲(chǔ),以4K字節(jié)(32 頁(yè))單位進(jìn)行寫保護(hù)劃分;除了“廠商配置字”區(qū)域出廠鎖定,用戶不可訪問(wèn),其他區(qū)域在一定條件下用戶可操作。

CH32V103內(nèi)部FLASH具有2種編程/擦除方式,具體如下:

標(biāo)準(zhǔn)編程:此方式是默認(rèn)編程方式(兼容方式)。這種模式下CPU以單次2字節(jié)方式執(zhí)行編程,單次1K字節(jié)執(zhí)行擦除及整片擦除操作。

快速編程:此方式采用頁(yè)操作方式(推薦)。經(jīng)過(guò)特定序列解鎖后,執(zhí)行單次128字節(jié)的編程及128字節(jié)擦除。

關(guān)于CH32V103內(nèi)部FLASH具體信息,可參考CH32V103應(yīng)用手冊(cè)。CH32V103內(nèi)部FLASH標(biāo)準(zhǔn)庫(kù)函數(shù)具體內(nèi)容如下:

pYYBAGPYvGGAXycRAAGJp1PCa9E193.png

poYBAGPYvGGAGjwiAABGDg5mAYU175.png

2、硬件設(shè)計(jì)

本章教程主要通過(guò)程序代碼進(jìn)行內(nèi)部FLASH讀寫操作,使用CH32V103內(nèi)部資源,無(wú)需進(jìn)行硬件連接。

3、軟件設(shè)計(jì)

CH32V103內(nèi)部FLASH編程/擦除方式有兩種,一種是標(biāo)準(zhǔn)編程,一種是快速編程,本章即使用上述這兩種方式分別進(jìn)行內(nèi)部FLASH讀寫操作,程序編程主要分3個(gè)步驟:

1、對(duì)內(nèi)部FLASH進(jìn)行解鎖;

2、對(duì)內(nèi)部FLASH進(jìn)行頁(yè)擦除;

3、對(duì)內(nèi)部FLASH進(jìn)行讀寫操作。

根據(jù)上述操作步驟,編寫具體程序,具體程序如下:

flash.h文件

pYYBAGPYvGGAdvLSAABfaQay0UE292.png

flash.h文件主要包含相關(guān)定義和函數(shù)聲明;

flash.c文件

pYYBAGPYvGGAcaLJAACwSoJAY1c353.png

poYBAGPYvGGAPjwYAAEd09RflpQ140.png

pYYBAGPYvGGAM3tTAAFJDsHP4C0650.png

poYBAGPYvGGAS1MPAAB0sVd7dE8825.png

flash.c文件主要包含兩個(gè)函數(shù),一個(gè)是內(nèi)部FLASH標(biāo)準(zhǔn)編程函數(shù)Flash_Test,一個(gè)是內(nèi)部FLASH快速編程函數(shù)Flash_Test_Fast,這兩個(gè)函數(shù)具體執(zhí)行過(guò)程如下:

內(nèi)部FLASH標(biāo)準(zhǔn)編程函數(shù)Flash_Test執(zhí)行過(guò)程:

(1)調(diào)用FLASH_Unlock函數(shù)進(jìn)行解鎖;

(2) 根據(jù)起始地址及結(jié)束地址計(jì)算需要擦除頁(yè)數(shù);

(3) 調(diào)用FLASH_ClearFlag函數(shù)清除各種標(biāo)志位;

(4) 使用for循環(huán)以及調(diào)用FLASH_ErasePage函數(shù)擦除頁(yè)數(shù),每次擦除一頁(yè);

(5) 使用while循環(huán)并調(diào)用FLASH_ProgramWord函數(shù)向起始地址至結(jié)束地址的存儲(chǔ)區(qū)域都寫入變量“Data”存儲(chǔ)的數(shù)值數(shù)值;

(6) 調(diào)用FLASH_Lock函數(shù)進(jìn)行上鎖;

(7) 使用指針讀取寫入的數(shù)據(jù)內(nèi)容并校驗(yàn)。

內(nèi)部FLASH快速編程函數(shù)Flash_Test_Fast執(zhí)行過(guò)程與標(biāo)準(zhǔn)編程執(zhí)行過(guò)程類似,具體如下:

(1)調(diào)用FLASH_Unlock_Fast函數(shù)進(jìn)行解鎖;

(2) 調(diào)用FLASH_ErasePage_Fast函數(shù)擦除指定閃存頁(yè);

(3) 調(diào)用FLASH_BufReset函數(shù)復(fù)位閃存緩沖區(qū),執(zhí)行清除內(nèi)部128字節(jié)緩存區(qū)操作;

(4) 調(diào)用FLASH_BufLoad函數(shù)向指定地址開(kāi)始連續(xù)寫入16字節(jié)數(shù)據(jù)(4字節(jié)/次操作,寫的地址每次偏移量為4),然后執(zhí)行加載到緩沖區(qū);

(5) 調(diào)用FLASH_ProgramPage_Fast函數(shù)啟動(dòng)一次快速頁(yè)編程動(dòng)作,編程指定的閃存頁(yè);

(6) 調(diào)用FLASH_Lock_Fast函數(shù)進(jìn)行上鎖;

(7) 使用for循環(huán)讀取編程地址進(jìn)行數(shù)據(jù)校驗(yàn)并返回校驗(yàn)值。

以上兩個(gè)函數(shù)執(zhí)行過(guò)程可對(duì)照CH32V103應(yīng)用手冊(cè)第24章閃存操作流程進(jìn)行程序編寫,更有助于理解編程。

main.c函數(shù)

pYYBAGPYvGGAWHS7AACUoI2Oii8917.png

main.c函數(shù)主要進(jìn)行函數(shù)初始化以及根據(jù)flash.c文件兩個(gè)函數(shù)返回值輸出相應(yīng)信息。

4、下載驗(yàn)證

將編譯好的程序下載到開(kāi)發(fā)板并復(fù)位,串口打印情況具體如下:

poYBAGPYvGGAMUe2AACIfTVMoeM163.png

根據(jù)串口打印信息可知,內(nèi)部FLASH標(biāo)準(zhǔn)編程和快速編程測(cè)試成功。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20144

    瀏覽量

    246691
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18593

    瀏覽量

    386041
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1715

    瀏覽量

    154637
  • RISC-V
    +關(guān)注

    關(guān)注

    48

    文章

    2781

    瀏覽量

    51812
  • CH32V103
    +關(guān)注

    關(guān)注

    1

    文章

    13

    瀏覽量

    1378
  • ch32
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于CH32V103系列MCU的ADC采樣設(shè)計(jì)

    CH32V103系列是以青稞V3A處理器為核心的32位通用RISC-V MCU,該處理器是基于RISC-
    的頭像 發(fā)表于 01-31 14:21 ?5303次閱讀
    基于<b class='flag-5'>CH32V103</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的ADC采樣設(shè)計(jì)

    CH32V103數(shù)據(jù)手冊(cè)

    教程基于沁恒32位通用增強(qiáng)型RISC-V架構(gòu)MCU CH32V103,力爭(zhēng)全面分析CH32V103的每個(gè)外設(shè)功能及使用方法,手把手教大家玩轉(zhuǎn)RISC-
    發(fā)表于 07-19 07:55

    系列比如103系列,CH32V103系列CH32F103有哪些區(qū)別?

    系列比如103系列,CH32V103系列CH32F103有哪些區(qū)別?
    發(fā)表于 03-09 10:05

    CH32V103基礎(chǔ)教程15-SPI讀寫FLASH

    本章教程將使用CH32V103的SPI讀寫FLASH,并通過(guò)串口調(diào)試助手將讀寫結(jié)果打印顯示。1、SPI簡(jiǎn)介及相關(guān)函數(shù)介紹SPI是串行外設(shè)接口(Serial Peripheral Int
    發(fā)表于 04-17 15:30

    CH32V103基礎(chǔ)教程23-讀寫內(nèi)部FLASH

    本章教程將通過(guò)程序代碼進(jìn)行內(nèi)部FLASH讀寫操作。1、CH32V103內(nèi)部
    發(fā)表于 04-19 16:14

    CH32V103基礎(chǔ)教程24-設(shè)置FLASH讀寫保護(hù)及解除

    本章教程將使用CH32V103內(nèi)部FLASH進(jìn)行FLASH讀寫保護(hù)及解除設(shè)置。1、用戶選擇字簡(jiǎn)介及相關(guān)函數(shù)介紹用戶選擇字固化在
    發(fā)表于 04-19 16:22

    CH32V103基礎(chǔ)教程89-FLASH編程

    本章主要使用CH32V103進(jìn)行FLASH的擦/讀/寫,以及快速編程。 1、FLASH簡(jiǎn)介及相關(guān)函數(shù)介紹關(guān)于CH2V103的FLSAH,其支持2種編程/擦除
    發(fā)表于 05-10 16:20

    RISC-V MCU應(yīng)用開(kāi)發(fā)教程之CH32V103

    教程基于沁恒32位通用增強(qiáng)型RISC-V架構(gòu)MCU CH32V103,力爭(zhēng)全面分析CH32V103的每個(gè)外設(shè)功能及使用方法,手把手教大家玩轉(zhuǎn)RISC-
    發(fā)表于 11-18 16:21 ?18次下載
    RISC-<b class='flag-5'>V</b> <b class='flag-5'>MCU</b>應(yīng)用開(kāi)發(fā)教程之<b class='flag-5'>CH32V103</b>

    基于CH32V103系列MCU點(diǎn)亮LED

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開(kāi)源指令集設(shè)計(jì)。 片上集成了時(shí)鐘安全機(jī)制、多級(jí)電
    的頭像 發(fā)表于 01-31 12:01 ?2911次閱讀
    基于<b class='flag-5'>CH32V103</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>點(diǎn)亮LED

    如何控制CH32V103進(jìn)入待機(jī)模式以及對(duì)其進(jìn)行喚醒操作

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開(kāi)源指令集設(shè)計(jì)。片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源
    的頭像 發(fā)表于 01-31 14:47 ?3267次閱讀
    如何控制<b class='flag-5'>CH32V103</b>進(jìn)入待機(jī)模式以及對(duì)其進(jìn)行喚醒<b class='flag-5'>操作</b>

    如何控制CH32V103進(jìn)入停止模式以及對(duì)其進(jìn)行喚醒操作

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開(kāi)源指令集設(shè)計(jì)。片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源
    的頭像 發(fā)表于 01-31 14:48 ?2835次閱讀
    如何控制<b class='flag-5'>CH32V103</b>進(jìn)入停止模式以及對(duì)其進(jìn)行喚醒<b class='flag-5'>操作</b>

    基于CH32V103系列MCU的觸摸按鍵檢測(cè)

    CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開(kāi)源指令集設(shè)計(jì)。片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源
    的頭像 發(fā)表于 01-31 14:53 ?5426次閱讀
    基于<b class='flag-5'>CH32V103</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的觸摸按鍵檢測(cè)

    ch32v103應(yīng)用教程 ch32v103c8t6兼容 ch32v103c8t6燒錄器

    、低成本的單片機(jī),廣泛應(yīng)用于工業(yè)自動(dòng)化、通信、汽車電子、醫(yī)療儀器等領(lǐng)域。它采用的是ARM Cortex-M3內(nèi)核,具有豐富的外設(shè),支持多種通信協(xié)議,操作靈活、功能強(qiáng)大。本文主要介紹CH32V103
    的頭像 發(fā)表于 08-22 15:19 ?3467次閱讀

    ch32v103和stm32的區(qū)別

    和stm32。雖然它們共同作為微處理器的代表,但是它們之間還是有很多不同的。下面就詳細(xì)地對(duì)這兩種芯片進(jìn)行比較和解析。 1、基本介紹 CH32V103是一款以ARM結(jié)構(gòu)為基礎(chǔ),具有射頻控制功能,能提供所有常規(guī)的數(shù)字接口的單片機(jī)芯片。其中包含有多種與ARM控制器及AC55XX系列
    的頭像 發(fā)表于 08-22 15:48 ?2295次閱讀

    ch32v103與stm32f103的區(qū)別

    ch32v103與stm32f103的區(qū)別? Ch32v103與STM32f103是兩種不同的芯片,雖然它們都是基于ARM Cortex-M3內(nèi)核的32位微控制器,但它們?cè)谟布渲?、?/div>
    的頭像 發(fā)表于 08-22 15:49 ?3796次閱讀