Re: 請問pic24與eeprom的spi溝通問題
|
||||
---|---|---|---|---|
版主
|
http://www.microchip.com.tw/modules/mydownloads/viewcat.php?cid=4
dsPIC30F Module TRaining - SPI 講義及練習 下載看一下,李免有何先生寫好的 Code Examples for SPI Master & Slave mode emulater for the 25LCxxx EEPROM.
發表於: 2007/9/3 9:59
|
|||
|
請問pic24與eeprom的spi溝通問題
|
||||
---|---|---|---|---|
新會員
|
各路高手:
我想要做一個pic24與eeprom的存取程式,下面是透過spi讓pic24與eeprom上的STATUS register存取測試,但我老是沒有辦法成功,請各位幫我看一下 還有,我用的是Explorer 16 100-pin的開發版 Explorer 16 100 pin board guide- http://ww1.microchip.com/downloads/cn/DeviceDoc/cn025219.pdf 25LC256的eeprom- http://ww1.microchip.com/downloads/cn/DeviceDoc/cn011841.pdf #include <p24FXXXX.h> void SPI_Initial(void) ; void SPI2Write(unsigned char data); unsigned char SPI2Read(void); unsigned char data; int aa1; int main(void) { SPI_Initial(); TRISDbits.TRISD12=0; //eeprom cs PORTDbits.RD12=1; PORTDbits.RD12=0; //Set the write enable latch SPI2Write(0b00000110); PORTDbits.RD12=1; PORTDbits.RD12=0; //Write STATUS register SPI2Write(0b00000001); SPI2Write(0b10001100); PORTDbits.RD12=1; PORTDbits.RD12=0; //Read STATUS register SPI2Write(0b00000101); aa1=SPI2Read(); //receive data PORTDbits.RD12=1; Nop(); } //main迴圈 //===========SPI Initial================ void SPI_Initial(void) { SPI2STAT=0b0000000000000000; SPI2CON1=0b0000000000111111; SPI2CON2=0b0000000000000000; IPC8bits.SPI2IP2=1; IPC8bits.SPI2IP1=1; IPC8bits.SPI2IP0=1; IEC2bits.SPI2IE=0; IEC2bits.SPF2IE=0; SPI2STATbits.SPIEN=1; } //==============SPI2write==================== void SPI2Write(unsigned char data) { SPI2BUF = data; while(SPI2STATbits.SPITBF); } //==============SPI2read===================== unsigned char SPI2Read() { //unsigned char data; while(!SPI2STATbits.SPIRBF); data = SPI2BUF; return data; }
發表於: 2007/9/2 9:06
|
|||
|