娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月01日(星期四)

2018年05月01日 | STM32F103系列內部Flash讀寫程序

發布者:MysticalDreamer 來源: eefocus關鍵字:STM32F103系列  內部Flash  讀寫程序 手機看文章 掃描二維碼
隨時隨地手機看文章

近幾天抽空研究了一下STM32的內部Flash操作,總的來說還是比較簡單的。需要注意的是,先了解下STM32內部的地址分配,我使用的是STM32F103RB這個型號,其他型號可參見《STM32參考手冊》,該芯片的地址分配如下:

還需要說明的一點是,我使用的是STM32的庫開發,所以具體的Flash操作也是調用官方的API函數來實現,該接口基本不需要配置,只要保證把庫文件包含在工程中,就可以實現調用了,編寫程序時不需要額外配置相關寄存器什么的。下面是簡單的函數實現,通過簡單的移植即可實現flash的讀寫操作,有任何疑問歡迎交流討論,共同學習。

/****************************************************************  

*Function:  STM32F103系列內部Flash讀寫操作  

*Author:    ValerianFan  

*Date:      2014/04/09  

*E-Mail:    fanwenjingnihao@163.com  

*Other:     該程序不能直接編譯運行,只包含了Flash讀寫操作  

****************************************************************/  

  

  

#include "stm32f10x.h"  

#include "stm32f10x_flash.h"                     //flash操作接口文件(在庫文件中),必須要包含  

  

  

#define  STARTADDR  0x08010000                       //STM32F103RB 其他型號基本適用,未測試   

volatile FLASH_Status FLASHStatus = FLASH_COMPLETE;      //Flash操作狀態變量  

  

  

/****************************************************************  

*Name:      ReadFlashNBtye  

*Function:  從內部Flash讀取N字節數據  

*Input:     ReadAddress:數據地址(偏移地址)ReadBuf:數據指針  ReadNum:讀取字節數  

*Output:    讀取的字節數    

*Author:    ValerianFan  

*Date:      2014/04/09  

*E-Mail:    fanwenjingnihao@163.com  

*Other:       

****************************************************************/  

int ReadFlashNBtye(uint32_t ReadAddress, uint8_t *ReadBuf, int32_t ReadNum)   

{  

        int DataNum = 0;  

        ReadAddress = (uint32_t)STARTADDR + ReadAddress;   

        while(DataNum < ReadNum)   

        {  

           *(ReadBuf + DataNum) = *(__IO uint8_t*) ReadAddress++;  

           DataNum++;  

        }  

        return DataNum;  

}  

  

/****************************************************************  

*Name:      WriteFlashOneWord  

*Function:  向內部Flash寫入32位數據  

*Input:     WriteAddress:數據地址(偏移地址)WriteData:寫入數據  

*Output:    NULL   

*Author:    ValerianFan  

*Date:      2014/04/09  

*E-Mail:    fanwenjingnihao@163.com  

*Other:       

****************************************************************/  

  

void WriteFlashOneWord(uint32_t WriteAddress,uint32_t WriteData)  

{  

    FLASH_UnlockBank1();  

    FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);   

    FLASHStatus = FLASH_ErasePage(STARTADDR);  

  

    if(FLASHStatus == FLASH_COMPLETE)  

    {  

        FLASHStatus = FLASH_ProgramWord(STARTADDR + WriteAddress, WriteData);    //flash.c 中API函數  

        //FLASHStatus = FLASH_ProgramWord(StartAddress+4, 0x56780000);                      //需要寫入更多數據時開啟  

        //FLASHStatus = FLASH_ProgramWord(StartAddress+8, 0x87650000);                      //需要寫入更多數據時開啟  

    }  

    FLASH_LockBank1();  

}   

  

  

/****************************************************************  

*Name:      USART1_Send_One  

*Function:  USART1發送一個字節數據  

*Input:     Data:待發送數據  

*Output:           NULL   

*Author:        ValerianFan  

*Date:      2014/04/09  

*E-Mail:          fanwenjingnihao@163.com  

*Other:       

****************************************************************/  

  

void USART1_Send_One(u8 Data)  

{  

    USART_SendData(USART1, Data);  

    while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);  

  

}  

  

/****************************************************************  

*Name:      main  

*Function:  寫入讀取內部flash  

*Input:     NULL  

*Output:    NULL  

*Author:        ValerianFan  

*Date:      2014/04/09  

*E-Mail:    fanwenjingnihao@163.com  

*Other:       

****************************************************************/  

  

  

void main(void)  

{    

    uint8_t Temp_Data[20] = {0};  

    unsigned char Temp = 0;  

    int ReadNum = 0;  

    int i = 0;  

  

    Dveice_Init(72);  //系統初始化,設置時鐘為72M  

    MCU_USART_Init();  

  

        WriteFlashOneWord(0,0x12345678);     //寫入數據  

    Delay_Ms(10);                           

    ReadNum = ReadFlashNBtye(0, Temp_Data,4); //讀取數據  

    Temp = (unsigned char)ReadNum;   

    USART1_Send_One(Temp);                //發送讀取的字節數  

    Delay_Ms(10);  

  

    while(1)  

    {  

        for(i = 0;i < ReadNum;i++)                

        {  

            USART1_Send_One(Temp_Data[i]);   //發送讀取到的數據,可觀測數據的存儲格式  

            Delay_Ms(100);   

        }  

    }   

      

}  



關鍵字:STM32F103系列  內部Flash  讀寫程序 引用地址:STM32F103系列內部Flash讀寫程序

上一篇:flash讀寫簡析(以stm32f107vct6為例)
下一篇:【stm32f103學習筆記】字、半字、字節和sizeof()

推薦閱讀

在智能穿戴領域,保持“不涼”本身也許就是一種成功。對智能眼鏡而言更是如此。?即便科技巨頭和創業公司們已經做出了不少產品,但說起智能眼鏡產品,我們首先會想到的依然是那位叫做 Google Glass 的壯士——它的失敗既是每位智能眼鏡后來者可以學習的寶貴經驗,又是這個行業上空久久不散的陰云般的詛咒。?英特爾就成為了這么一位“后來者”。?先有...
《復仇者聯盟4:終局之戰》是漫威從11年前開始打造的漫威宇宙系列的第22部作品,同時也是最后一部作品,目前這部電影正在席卷全球的影院票房。《復仇者聯盟4:終局之戰》的演員陣容充斥著各種好萊塢一線明星,因此只要漫威想要拍攝一部大片,那么就會在演員片酬中支付一大筆開支。不過,在這部電影的大部分時間里,許多演員都使用電腦生成的虛擬畫面進行幫...
假如窗戶既能采光又能發電,簡直是完美生活的標配。直到最近,這都是一個美妙卻難以實現的想法。制作一層薄薄的太陽能電池薄膜貼在玻璃窗戶上很容易,但讓太陽能完全轉換成電能則十分困難。來自澳大利亞的一群科學家讓這個問題迎刃而解。 由材料化學教授賈切克·賈西尼亞克(Jacek Jasieniak)帶領的團隊開發了一種新型的半透明太陽能電池。與其他半...
近年來,數字經濟規模不斷擴張,已成為國民經濟的重要組成部分,美、英、德等國的數字經濟GDP占比超過60%,居主導地位。目前,我國正積極推進數字產業化、產業數字化,引導數字經濟和實體經濟深度融合,推動經濟高質量發展。其中,隨著數字經濟向能源領域加速滲透,能源行業加快數字化、網絡化、智能化轉型。作為一種應運而生的新經濟形態,能源數字經濟...

史海拾趣

問答坊 | AI 解惑

2410 I2C 的 ISR,看不懂,幫忙解釋一下!

本人在調 CE5.0 + 2410 的 I2C 流驅動,其中 I2C 中斷的 ISR 部分有些看不懂,如下:         //         // IIC Interrupt         //         else if ( IntP ...…

查看全部問答∨

求助關于顯示FLASH

各位:     我的FLASH是32M 以前NK大小一直是26M,啟動系統后FLASH盤可以識別 現在加的東西多了,我把NK在config.bib中改成28M 啟動系統后看不到FLASH 我添加了組件:FAT 、              ...…

查看全部問答∨

固件手冊的問題。。107以太部分

107以太部分的固件 有說明么? 在哪能下到…

查看全部問答∨

51單片機最小系統

yuyuuuuuuuuuuuuuuuuuuuuuuuuuyyyyuuu…

查看全部問答∨

初二想學單片機+pcb 求一師傅 謝謝了

本人初二 從小對電子、機械非常感興趣 我現在想學單片機和pcb 求一個師傅叫我 給我引路 我有一個小的51單片機 還有郭天祥的教程 其余的沒什么存貨 父親是做醫療影響的 可以拆東西 如果需要什么 我可以去科技市場買 謝謝了 我想做一個搖搖棒時鐘 ...…

查看全部問答∨

觸摸板收到了,但是里邊的MSP430G2452的引腳斷了一根。

如題,看來得新買芯片才可以玩了。 不知道有沒有類似的情況?!?

查看全部問答∨

高手請教

看不懂這個電路 請教高手…

查看全部問答∨

【不申請BeagleBone】便攜SVN服務器【分享思路】

有些開發人員需要一個便攜的SVN服務器,能夠在不同地點享受到防火墻內的SVN服務。假設有這樣一個小設備:在任何地方,將它接上電源插入網線,外殼上會顯示SVN服務器的IP,然后在你的開發環境中連接到這個IP的SVN就可以檢出或者提交代碼到SVN了^ ^預 ...…

查看全部問答∨

快來加入TI 吧! TI上海研發中心招募系統工程師! (Hot)

【支持之外】快來加入TI吧! TI上海研發中心招募系統工程師! (Hot) 您具備下面的工作經驗嗎?您想加入TI大家庭嗎?如果是,別等了,快來申請吧。。。我們期待您的加入! 工作職位:Job ID 5960BR - System Engineer (location: Shanghai R&D c ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 峨眉山市| 龙川县| 龙游县| 九龙县| 甘肃省| 垫江县| 奈曼旗| 永德县| 昔阳县| 蓬安县| 静海县| 习水县| 北安市| 内黄县| 大方县| 延川县| 精河县| 高邮市| 常德市| 宁南县| 博爱县| 汕尾市| 田阳县| 蓬溪县| 广南县| 德昌县| 合山市| 汝阳县| 泰宁县| 诸暨市| 浦东新区| 兰溪市| 平顺县| 丰县| 锦州市| 饶阳县| 承德市| 高清| 合作市| 永仁县| 讷河市|