|
你可以把這個(gè)等待當(dāng)成應(yīng)答,或者寫入完成標(biāo)志位,怎么叫都行,你理解就行了
1: 把寫入一個(gè)完整數(shù)據(jù)(這包括寫下地址,讀寫標(biāo)志等等)和等待分開寫,寫兩個(gè)函數(shù)
2: 聲明一個(gè)僵局位,或者一個(gè)全局u8變量都行,看實(shí)際情況吧,我這行就用 F 來(lái)代替吧, 現(xiàn)在定義規(guī)則: F == 1 就是正在寫入, F !=1 就是寫入完成
3:這個(gè)是你的寫入函數(shù)
- void E2_WriteByte(unsigned char addr,unsigned char dat)
- {
- unsigned char sta;
- SPI_CS = 0;
- spiWriteByte(WREN);
- SPI_CS = 1;
- SPI_CS = 0;
- spiWriteByte(WRITE);
- spiWriteByte(addr);
- spiWriteByte(dat);
- SPI_CS = 1;
- F = 1://寫入完整的數(shù)據(jù)后,F置位
- }
這個(gè)是讀取函數(shù),這個(gè)函數(shù)可以是有返回值的,也可以是不返回,在函數(shù)中操作F就可以了有的單片機(jī)返回參數(shù)代碼量和RAM占用多一點(diǎn),對(duì)于幾十B運(yùn)行內(nèi)存的單片機(jī)來(lái)說(shuō),這很重要,看你自己的情況
- void read(void)
- {
- SPI_CS = 0;
- spiWriteByte(RDSR);
- sta = spiReadByte();
- SPI_CS = 1;
- if((sta & 0x01) == 0)
- {
- F = 0;
- }
- }
那么好,在主程序中就可以通過F的值來(lái)進(jìn)行其它操作了
|
|