久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3954|回復: 0
收起左側

STM32學習-Flash讀寫

[復制鏈接]
ID:81272 發表于 2015-5-27 16:24 | 顯示全部樓層 |閱讀模式
一直是使用野火的例程學習STM32,而他的書里面沒有講到STM32的Flash操作,所以一直以為STM32不能對Flash進行操作。后來想到連STC這等國產8位機都可以進行Flash操作,想必STM32也可以,所以對此進行了一番小研究。

其實STM32的庫里面就有專門針對Flash的程序,還有一個專門的文檔,且的中文版本,名字叫《PM0042 STM32F10xxx閃存編程》(見附件)。
手頭開發板上芯片是STM32F103C8T6,片上Flash為64KB,按ST定義,屬于中容量的,下表就是中容量內存組織。


文檔中對寫Flash有專門的描述,重要的知識點包括但不限于:
1)擦除操作只能是頁擦除或全部擦除。
2)寫操作只能是每次寫入16-bit,即雙字節。
3)在擦除之前,要先寫兩個鍵值KEY1(0x45670123)和KEY2(0xCDEF89AB)到FLASH_KEYR寄存器,以解除閃存鎖。
我們的程序基本流程是,先讀取Flash中一個固定地址的數據,然后通過串口打印,再修改此數據,修改后再讀回來。
這是寫Flash的程序:
void Writeflash(void)
{
        FLASH_Unlock();
        FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
            FLASHStatus = FLASH_ErasePage(StartAddress);

        if(FLASHStatus == FLASH_COMPLETE)
        {
                FLASHStatus = FLASH_ProgramWord(StartAddress, 0x12345678);
                USART1_printf(USART1, "\r\n");
        }
}

FLASH_Unlock()就是完成解除閃存鎖的工作,以下是FLASH_Unlock()函數的實現。
void FLASH_Unlock(void)
{
  /* Authorize the FPEC of Bank1 Access */
  FLASH->KEYR = FLASH_KEY1;
  FLASH->KEYR = FLASH_KEY2;

  #ifdef STM32F10X_XL
  /* Authorize the FPEC of Bank2 Access */
  FLASH->KEYR2 = FLASH_KEY1;
  FLASH->KEYR2 = FLASH_KEY2;
  #endif /* STM32F10X_XL */
}
FLASH_ErasePage()函數就是完成擦除整頁數據功能,FLASH_ProgramWord()是向Flash固定的地址寫入一個32-bit數據。



程序進行相應修改可以做成通過USART對Flash操作,比如,通過串口發送數據,修改Flash中的數據。
對Flash的操作用處很多,比如在CAN網絡中可以在Flash中預先設置CAN的地址,也可以通過can通信在線修改地址,再比如在溫度測量控制系統中可以在Flash預置傳感器的標定值等。


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线播放av网站 | 手机看片日韩 | 精品欧美日韩 | 午夜婷婷| 久久久久一区二区三区 | 天天视频黄 | 国产精品久久久久久久久久久久午夜片 | 黄色a网站| 91成人精品一区在线播放 | 99热伊人| 亚洲性视频 | 日韩欧美综合 | 精品国产区一区二 | 中文字幕一区二区三区乱码 | 天天爽天天爽 | 中文字幕一区二区三区视频 | 丨国产丨调教丨91丨 | 日韩一级片 | 国产一级片在线 | 超碰99在线 | a级黄毛片 | 中文字幕www| 精品一区二区三区四区 | a级片久久 | 一区二区三区不卡视频 | 成人爽a毛片一区二区免费 亚洲午夜在线观看 | 久久久久久99精品久久久 | 亚洲精品美女 | 三级视频在线观看 | 久久机热 | 久久国语 | 成人做受黄大片 | 中文字幕丰满人伦在线 | 欧美中文字幕在线观看 | av福利网站| 国产一区二区三区在线看 | 亚洲伊人av | 一区二区三区免费在线观看 | 中文字幕在线播放视频 | 天天射av| 一级片av|