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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32入門學習筆記之外置FLASH讀寫實驗(上)

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術園地 ? 2023-02-16 14:10 ? 次閱讀

15.1 FLASH

Flash,全名叫做Flash EEPROM Memory,即平時所說的“閃存”,它結合了ROM和RAM的長處,不僅可以反復擦除,還可以快速讀取數據,STM32運行的程序其實就是存放在Flash當中,但是由于STM32的Flash一般1M左右,只能存儲程序大小的數據,所以往往需要外擴Flash來存儲數據,比如LCD界面當中的漢字字庫,以及文件系統中讀取的文件內容。

但是一般Flash的擦除次數有限制,STM32F1系列最新的文檔指出,片內的FLASH擦寫次數大約在1W次左右,所以一般Flash用于擦除次數不多,但是數據量很大的場合。

這個Flash讀寫實驗我們用到的芯片是W25Q128,這是一款采用SPI協議進行讀寫的Flash芯片,存儲容量為128Mbit,合計16Mbyte,工作電壓2.7V~3.6V。這個實驗我們采用STM32內置的SPI模塊來進行對芯片的讀寫操作,STM32F1的SPI功能很強大,SPI時鐘最高可以到18MHz,支持DMA,可以配置為SPI協議或者I2S協議。

15.2 硬件SPI模塊

通過之前51單片機開發我們可以知道,SPI協議一共需要四根線來完成數據通信,即片選CS,總線時鐘SCK,主機輸入從機輸出MISO和主機輸出從機輸入MOSI四根數據線。STM32的內部SPI模塊結構框圖如下圖所示。

圖片

從上面的結構框圖我們可以發現,硬件SPI的優勢就在于開發者不需要考慮SPI的詳細參數以及時序,只需要配置內部的寄存器,設置速率,電平就可以實現SPI通信。

15.3 相關寄存器

15.3.1 SPI控制寄存器1:SPIx_CR1

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BIDIMODE BIDIOE CRCEN CRCNEXT DFF RXONLY SSM SSI LSBFIRST SPE BR[2:0] MSTR CPOL CPHA

Bit 15:雙向數據模式使能

0:選擇雙線雙向模式

1:選擇單線雙向模式

Bit 14:雙向模式下的輸出使能

0:輸出禁止(只收模式)

1:輸出使能(只發模式)

Bit 13:硬件CRC校驗使能

0:禁止CRC計算

1:啟動CRC計算

Bit 12:下一個發送CRC

0:下一個發送的值來自發送緩沖區

1:下一個發送的值來自發送CRC寄存器

Bit 11:數據幀格式

0:使用8位數據幀格式進行發送/接收

1:使用16位數據幀格式進行發送/接收

Bit 10:只接收

0:全雙工(發送和接收)

1:禁止輸出(只接收模式)

Bit 9:軟件從設備管理

0:禁止軟件從設備管理

1:啟用軟件從設備管理

Bit 8:內部從設備選擇

注:該位只在SSM位為1時有意義。它決定了NSS上的電平,在NSS引腳上的I/O操作無效

Bit 7:幀格式

0:先發送MSB

1:先發送LSB

Bit 6:SPI使能

0:禁止SPI設備

1:開啟SPI設備

Bit 5~Bit 3:波特率控制

000:f PCLK /2

001:f PCLK /4

010:f PCLK /8

011:f PCLK /16

100:f PCLK /32

101:f PCLK /64

110:f PCLK /128

111:f PCLK /256

Bit 2:主設備選擇

0:配置為從設備

1:配置為主設備

Bit 1:時鐘極性

0:空閑狀態時,SCK保持低電平

1:空閑狀態時,SCK保持高電平

Bit 0:時鐘相位

0:數據采樣從第一個時鐘邊沿開始

1:數據采樣從第二個時鐘邊沿開始

15.3.2 SPI狀態寄存器:SPIx_SR

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- BSY OVR MODF CRCERR UDR CHSIDE TXE RXNE

Bit 7:忙標志

0:SPI不忙

1:SPI正忙于通信,或者發送緩沖非空

Bit 6:溢出標志

0:沒有出現溢出錯誤

1:出現溢出錯誤

Bit 5:模式錯誤(在SPI模式下不使用)

0:沒有出現模式錯誤

1:出現模式錯誤

Bit 4:CRC錯誤標志(在SPI模式下不使用)

0:收到的CRC值和SPI_RXCRCR寄存器中的值匹配

1:收到的CRC值和SPI_RXCRCR寄存器中的值不匹配

Bit 3:下溢標志位(在SPI模式下不使用)

0:未發生下溢

1:發生下溢

Bit 2:聲道(在SPI模式下不使用)

0:需要傳輸或者接收左聲道

1:需要傳輸或者接收右聲道

Bit 1:發送緩沖為空

0:發送緩沖非空

1:發送緩沖為空

Bit 0:接收緩沖非空

0:接收緩沖為空

1:接收緩沖非空

15.4 實驗例程

功能:在Flash中寫入一段字符串,而后讀出來并顯示在TFTLCD上。

(1)創建w25q128.h并輸入以下代碼。

/*********************************************************************************************************
                FLASH    驅    動    文    件
*********************************************************************************************************/
#ifndef _W25Q128_H_
#define _W25Q128_H_


#include "sys.h"
/*********************************************************************************************************
                  端    口    定    義
*********************************************************************************************************/
#define  W25QXX_CS  PBout( 12 )                                      //W25QXX的片選信號
/*********************************************************************************************************
                  數    據    定    義
*********************************************************************************************************/
//SPI總線速度設置
#define SPI_SPEED_2       0
#define SPI_SPEED_4       1
#define SPI_SPEED_8       2
#define SPI_SPEED_16      3
#define SPI_SPEED_32     4
#define SPI_SPEED_64     5
#define SPI_SPEED_128     6
#define SPI_SPEED_256     7
//指令表
#define W25X_WriteEnable    0x06
#define W25X_WriteDisable    0x04
#define W25X_ReadStatusReg    0x05
#define W25X_WriteStatusReg    0x01
#define W25X_ReadData      0x03
#define W25X_FastReadData    0x0B
#define W25X_FastReadDual    0x3B
#define W25X_PageProgram    0x02
#define W25X_BlockErase      0xD8
#define W25X_SectorErase    0x20
#define W25X_ChipErase      0xC7
#define W25X_PowerDown      0xB9
#define W25X_ReleasePowerDown  0xAB
#define W25X_DeviceID      0xAB
#define W25X_ManufactDeviceID  0x90
#define W25X_JedecDeviceID    0x9F
/*********************************************************************************************************
                  函    數    列    表
*********************************************************************************************************/
void W25QXX_Init( void ) ;                                        //初始化Flash
void W25QXX_Read( u8* pBuffer, u32 Address, u16 Len ) ;                          //讀取Flash
void W25QXX_Write( u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite ) ;                  //寫入Flash
void W25QXX_Erase_Chip( void ) ;                                    //整片擦除
void W25QXX_Erase_Sector( u32 Dst_Addr ) ;                                //扇區擦除


#endif
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6040

    文章

    44592

    瀏覽量

    636894
  • FlaSh
    +關注

    關注

    10

    文章

    1640

    瀏覽量

    148298
  • ROM
    ROM
    +關注

    關注

    4

    文章

    575

    瀏覽量

    85862
  • STM32
    +關注

    關注

    2270

    文章

    10915

    瀏覽量

    356754
  • EEPROM
    +關注

    關注

    9

    文章

    1027

    瀏覽量

    81771
收藏 人收藏

    評論

    相關推薦

    STM32入門學習筆記之外置FLASH讀寫實驗(下)

    Flash,全名叫做Flash EEPROM Memory,即平時所說的“閃存”,它結合了ROM和RAM的長處,不僅可以反復擦除,還可以快速讀取數據,STM32運行的程序其實就是存放在Flas
    的頭像 發表于 02-16 14:13 ?1535次閱讀

    【GD32F470紫藤派開發板使用手冊】第十二講 SDIO-SD卡讀寫實驗

    通過本實驗主要學習以下內容: ?SDIO操作原理 ?SD卡讀寫實
    的頭像 發表于 05-18 09:36 ?1436次閱讀
    【GD32F470紫藤派開發板使用手冊】第十二講 SDIO-SD卡<b class='flag-5'>讀寫實驗</b>

    如何對擴展存儲器進行讀寫實驗

    擴展存儲器讀寫實驗的目的是什么?怎樣去設計一種擴展存儲器讀寫的電路?擴展存儲器讀寫實驗的流程有哪些?
    發表于 07-14 07:04

    如何通過對flash讀寫實stm32的編程操作?

    如何通過對flash讀寫實stm32的編程操作?
    發表于 10-29 06:19

    接觸式IC卡讀寫實驗

    接觸式IC卡讀寫實驗 一. 實驗目的了解接觸式IC 卡的知識,
    發表于 09-22 17:20 ?4802次閱讀
    接觸式IC卡<b class='flag-5'>讀寫實驗</b>

    AVR內部EEPROM讀寫實驗

    片內EEPROM讀寫實險。?1、用內部EEPROM記錄CPU啟動次數,并在PB口上顯示出來。?2、內部1 M晶振,程序采用單任務方式,軟件延時。?3、進行此實驗
    發表于 06-30 11:25 ?2570次閱讀

    STM32Flash讀寫一些重要知識

    STM32Flash讀寫的一些重要知識
    的頭像 發表于 03-06 14:54 ?1.1w次閱讀

    STM32_ SPI讀寫Flash

    STM32_SPI讀寫Flash
    的頭像 發表于 04-08 10:26 ?5618次閱讀
    <b class='flag-5'>STM32</b>_ SPI<b class='flag-5'>讀寫</b><b class='flag-5'>Flash</b>

    單片機實驗匯編--擴展存儲器讀寫實驗

    擴展存儲器讀寫實驗一.實驗要求編制簡單程序,對實驗提供的外部存貯器(62256)進行讀寫操作。二.
    發表于 11-23 09:51 ?19次下載
    單片機<b class='flag-5'>實驗</b>匯編--擴展存儲器<b class='flag-5'>讀寫實驗</b>

    STM32F103學習筆記——SPI讀寫Flash(一)

    STM32F103學習筆記——SPI讀寫Flash(一)??此系列文章是小白學習
    發表于 12-02 12:06 ?19次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>——SPI<b class='flag-5'>讀寫</b><b class='flag-5'>Flash</b>(一)

    STM32F103學習筆記——SPI讀寫Flash(三)

    ??此系列文章是小白學習STM32的一些學習筆記。小白第一次寫筆記文章,有不足或是錯誤之處,請多體諒和交流!目錄1.
    發表于 12-22 19:29 ?11次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>——SPI<b class='flag-5'>讀寫</b><b class='flag-5'>Flash</b>(三)

    STM32F103學習筆記——SPI讀寫Flash(二)

    ??此系列文章是小白學習STM32的一些學習筆記。小白第一次寫筆記文章,有不足或是錯誤之處,請多體諒和交流!目錄1.軟件設計流程2.SPI初
    發表于 12-22 19:30 ?10次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>——SPI<b class='flag-5'>讀寫</b><b class='flag-5'>Flash</b>(二)

    STM32F103學習筆記——SPI讀寫Flash(四)

    ??此系列文章是小白學習STM32的一些學習筆記。小白第一次寫筆記文章,有不足或是錯誤之處,請多體諒和交流!目錄1.main函數編寫2.下載
    發表于 12-22 19:32 ?6次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>——SPI<b class='flag-5'>讀寫</b><b class='flag-5'>Flash</b>(四)

    外置FLASH讀寫實驗

    Flash,全名叫做Flash EEPROM Memory,即平時所說的“閃存”,它結合了ROM和RAM的長處,不僅可以反復擦除,還可以快速讀取數據,STM32運行的程序其實就是存放在Flas
    的頭像 發表于 03-01 14:56 ?4949次閱讀

    【GD32F303紅楓派開發板使用手冊】第二十三講 SDIO-SD卡讀寫實驗

    通過本實驗主要學習以下內容: ?SDIO操作原理 ?SD卡讀寫實
    的頭像 發表于 06-23 10:49 ?683次閱讀
    【GD32F303紅楓派開發板使用手冊】第二十三講 SDIO-SD卡<b class='flag-5'>讀寫實驗</b>
    主站蜘蛛池模板: 激情综合丝袜美女一区二区| 91av视频免费在线观看| 天天摸天天爽天天澡视频| 午夜 福利 视频| 天天拍夜夜添久久精品免费| 天天综合在线观看| 欧美黄色片免费| 成人窝窝午夜看片| 欧美午夜性春猛xxxx| 色播久久| 色婷婷一区二区三区四区成人网| 日韩欧美中文字幕在线播放 | 手机在线视频你懂的| 久国产精品久久精品国产四虎| 久久aa毛片免费播放嗯啊| 国产伦子系列视频6| 18岁禁黄色| yy6080理aa级伦大片一级| 在线操| 天天干天天操天天玩| 成人午夜影院在线观看| 亚洲卡1卡2卡新区网站| 国产视频h| 求av网址| 午夜精品久久久久蜜桃| 欧美日本综合| 欧美性受xxxx极品| 国产美女视频一区二区三区| 天天透天天干| 1024手机在线看片| www.亚洲成人| 全国最大色成免费网站| 国产网红精品| 两性色午夜视频免费老司机| 亚洲永久网站| 天堂网男人| 韩国十八禁毛片无遮挡| 日韩插插| 亚洲综合一二三区| 四虎院影永久在线观看| 色婷婷综合在线视频最新|