PIC單片機與串行閃存的SPI接口設計


其中,delay()為延時子函數,參數為ms級,delay(1)即延時1ms。加入延時,是為了保證存儲器在準備好的情況下才進行讀寫操作。

(3)連續讀函數
M25P16允許發出讀指令后,連續讀取數據,這一模式極大提高了總線效率。數據讀取函數的參數包括address:32位地址;block:讀數據緩沖區指針;n:一次連續讀取的字節數,代碼如下:


M25P16的連續讀操作與連續寫不同的是,無論READ還是FAST_READ,在起始地址處1字節的數據讀出后,會自動尋址更高地址處的數據,故程序中無需address++語句。
除了對M25P16的初始化、讀寫之外,經常還要對其進行擦除操作,擦除有扇區擦除和整體擦除2種方式,執行數據擦除將使內部所有數據變為FFH。擦除操作與寫操作類似,在此不再贅述。
結 語
本文介紹的M25P16與PIC16F877A的接口已應用于自來水流量數據采集的本地存儲中。運行穩定可靠,未發現數據丟失現象,對其他應用有一定的參考價值。
評論