| LPC2368读SPI FLASH芯片W25X40的状态寄存器的时候,LPC2368 SPI读到的数据都为0XFF,用示波器可以看到W25X40的管脚SCK、MOSI、CS上都有波形,但是W25X40的MISO脚却没有波形;读ID也不行,SPI读到的数据也为0XFF。请教各位为什么会这样,我也换过了W25X40 这个芯片,也不行。 W25X40的WP和HOLD都是经一个电阻上拉到3.3V。
 
 下面的是LPC2368 SPI的初始化和发送数据程序;
 
 DWORD SPIInit( void )
 {
 unsigned int tt=0;
 PCONP |= (1 << 8); /* by default, it's enabled already, for safety reason */
 S0SPCR = 0x00;
 /* Port 0.15 SPI SCK, port0.16 uses GPIO SPI_SEL,
 port0.17 MISO, port0.18 MOSI */
 PINSEL0 |= 0xC0000000;
 PINSEL1 |= 0x0000003C;
 
 GPIOSetDir(0,16,1);   GPIOSetValue(0,16,1);
 
 S0SPCR  = (1 << 5) |  // 设置为主机模式     //
 (0 << 2) |  // 每帧数据为8位     //
 (0 << 7) |       // 中断被禁能         //
 (0 << 6) |   // 高位在前
 (0 << 3) |   // 第二个时钟沿采样//
 (0 << 4);    // 时钟高有效         //
 
 tt = S0SPSR;
 __nop();
 return( TRUE );
 }
 unsigned int  SPISend1( unsigned int dat )
 {
 unsigned int state=0;
 BYTE Dummy=0;
 state  = S0SPSR;
 __nop();
 GPIOSetValue(0,16,0); //CS
 __nop();  __nop();
 S0SPDR = dat;
 while ((S0SPSR & 0x80) == 0);
 __nop();
 GPIOSetValue(0,16,1);  //CS
 __nop();  __nop();
 Dummy = S0SPDR;  // Flush the RxFIFO //
 __nop();
 
 return Dummy;
 }
 |