我自己在2440里面写了SPI 的驱动,我的想法是先将2440做为主机向外面发送数据,然后再将2440设置成为从机接收来自外部的数据,现在的问题是做为主机时,可以正确的向外部发送数据,但是做为从机,却接受不到来自外部从机的数据,通过示波器可以观察到从机在发送数据。想请问下这是什么原因,在2440做为从机的时候,MISO、MOSI、NSS、SCLK应该如何设置,有什么需要注意的吗?下面是我的设置,不知道有什么问题。请各位帮忙看下,谢谢!
spi_gpeup&=~(0x3800);//SPICLK0,SPIMOSI0,SPIMISO0分别置零
spi_gpeup|=0x2000;//SPICLK0置1
spi_gpecon=((spi_gpecon&0xf03fffff)|0xa800000);//rGPECON = 0xa800000,设置SPICLK0
spi_gpgup|=0x4;//设置nss0
spi_spcon0=(0<<5)|(0<<4)|(0<<3)|(1<<2)|(0<<1)|(0<<0);//控制寄存器
spi_sppin0=(0<<2)|(1<<1)|(0<<0);//引脚控制寄存器
spi_gpgcon=((spi_gpgcon&0xffffffcf)|0x30);//GPGCON
spi_gpgdat&=0xfffffffb;//GPGDAT