PIC單片機(jī)與串行閃存的SPI接口設(shè)計
其中,delay()為延時子函數(shù),參數(shù)為ms級,delay(1)即延時1ms。加入延時,是為了保證存儲器在準(zhǔn)備好的情況下才進(jìn)行讀寫操作。
(3)連續(xù)讀函數(shù)
M25P16允許發(fā)出讀指令后,連續(xù)讀取數(shù)據(jù),這一模式極大提高了總線效率。數(shù)據(jù)讀取函數(shù)的參數(shù)包括address:32位地址;block:讀數(shù)據(jù)緩沖區(qū)指針;n:一次連續(xù)讀取的字節(jié)數(shù),代碼如下:
M25P16的連續(xù)讀操作與連續(xù)寫不同的是,無論READ還是FAST_READ,在起始地址處1字節(jié)的數(shù)據(jù)讀出后,會自動尋址更高地址處的數(shù)據(jù),故程序中無需address++語句。
除了對M25P16的初始化、讀寫之外,經(jīng)常還要對其進(jìn)行擦除操作,擦除有扇區(qū)擦除和整體擦除2種方式,執(zhí)行數(shù)據(jù)擦除將使內(nèi)部所有數(shù)據(jù)變?yōu)镕FH。擦除操作與寫操作類似,在此不再贅述。
結(jié) 語
本文介紹的M25P16與PIC16F877A的接口已應(yīng)用于自來水流量數(shù)據(jù)采集的本地存儲中。運行穩(wěn)定可靠,未發(fā)現(xiàn)數(shù)據(jù)丟失現(xiàn)象,對其他應(yīng)用有一定的參考價值。
評論