w25q128 優化讀寫函式

2021-07-13 16:42:54 字數 1671 閱讀 7541

#include "w25qxx.h" 

#include "spi.h"

#include "delay.h"   

#include "usart.h"

u16 w25qxx_type=w25q128; //預設是w25q128

//4kbytes為乙個sector

//16個扇區為1個block

//w25q128

//容量為16m位元組,共有256個block,4096個sector 

//初始化spi flash的io口

void w25qxx_init(void)

//讀取w25qxx的狀態暫存器

//bit7  6   5   4   3   2   1   0

//spr   rv  tb bp2 bp1 bp0 wel busy

//spr:預設0,狀態暫存器保護位,配合wp使用

//tb,bp2,bp1,bp0:flash區域寫保護設定

//wel:寫使能鎖定

//busy:忙標記位(1,忙;0,空閒)

//預設:0x00

u8 w25qxx_readsr(void)   

//寫w25qxx狀態暫存器

//只有spr,tb,bp2,bp1,bp0(bit 7,5,4,3,2)可以寫!!!

void w25qxx_write_sr(u8 sr)   

//w25qxx寫使能

//將wel置位   

void w25qxx_write_enable(void)   

//w25qxx寫禁止

//將wel清零  

void w25qxx_write_disable(void)   

//讀取晶元id

//返回值如下:   

//0xef13,表示晶元型號為w25q80  

//0xef14,表示晶元型號為w25q16    

//0xef15,表示晶元型號為w25q32  

//0xef16,表示晶元型號為w25q64 

//0xef17,表示晶元型號為w25q128  

u16 w25qxx_readid(void)

//讀取spi flash  

//在指定位址開始讀取指定長度的資料

//pbuffer:資料儲存區

//readaddr:開始讀取的位址(24bit)

//numbytetoread:要讀取的位元組數(最大65535)

void w25qxx_read(u8* pbuffer,u32 readaddr,u16 numbytetoread)   

};

}

//寫spi flash  

//在指定位址開始寫入指定長度的資料

//該函式帶擦除操作!

//pbuffer:資料儲存區

//writeaddr:開始寫入的位址(24bit)

//numbytetowrite:要寫入的位元組數(最大65535)   

u8 w25qxx_buffer[4096];  

void w25qxx_write(u8* pbuffer,u32 writeaddr,u16 numbytetowrite)   

};

}

W25Q128資料手冊翻譯(1)

5 方框圖 w25q128fv 128mbit 型序列flash儲存器面向受限於空間 引腳和功耗的系統,提供了一種儲存解決方案。25q系列儲存器相比於普通的序列flash器件提供更好的靈活性和效能表現。它們是 儲存 直接通過雙線 四線spi執行 儲存音訊 文字和資料的理想選擇。該器件可在2.7v到3...

華邦記憶體編碼含義w25q64d

winbond 華邦 含義說明 a欄位由w組成,代表華邦 winbond 記憶體晶元的字首。b欄位表示產品型別。98代表sdram記憶體94代表ddr sdram記憶體。c欄位表示記憶體晶元的容量。16代表16mbit 2mb 32代表32mbit 4mb 64代表64mbit 8mb 12代表12...

STM32開發之SPI 與W25Q128通訊

除錯stm32l051的spi2 和 w25q128 通訊問題。問題是spi的sck一直高電平,沒有訊號輸出,一直高 mosi有訊號輸出,miso一直是高電平,沒有訊號輸出。gpio的初始化和spi的初始化,基本沒有什麼異常。stm32和ad7606的spi除錯心得 原子哥 暫存器版 方法 gpio...