Board logo

标题: C32的SPI问题! [打印本页]

作者: huaweicool    时间: 2006-3-29 12:27     标题: C32的SPI问题!

我的C32 SPI接收不到数据!MOSI脚一直出现杂波。


主模式对从机初始化正常,波形和数据都正确,设置为从模式时,不能进入中断!请各位高手指教。SPI初始化程序如下:


void SPIInitial(void)
{
  uchar temp;
  //MODRR=0x10;   //define SPI0 pins are PM2-PM5,CAN0 pins are PM0-PM1.
  //ss=1;         //ss pin is high, master mode
  //DDRM|=0x30;   //master mode, MOSI,SCK are output;MISO,SS are input
  SPICR1=0x54;
  SPICR2=0x00;
  SPIBR=0x17;  //SPI baud rate set:SPI0BR=0x17 is 7.8125 kHz,SPI0BR=0x07 is 15.625 kHz
                //
  SPIDR=0x73;              //initialize the slave
  //while(!SPI0SR_SPIF);
  while(!SPISR_SPTEF);
  delay(1);
  SPIDR=0xFF;
  //while(!SPI0SR_SPIF);
  while(!SPISR_SPTEF);
  delay(1);
  SPIDR=0x88;
  //while(!SPI0SR_SPIF);
  while(!SPISR_SPTEF);//等待发送完毕
  delay(1);


  SPIDR=0x80;
  //while(!SPI0SR_SPIF);
  while(!SPISR_SPTEF);
  delay(1);
  SPIDR=0x00;
  //while(!SPI0SR_SPIF);
  while(!SPISR_SPTEF);
  delay(1);
  SPIDR=0x00;
  //while(!SPI0SR_SPIF);
  while(!SPISR_SPTEF);
  delay(1);
  temp=SPISR;      //Clear SPIF bit
  temp=SPIDR;
 
  
  SPICR1&=0xEF;    //MSTR=0,slave mode 
  //DDRM&=0xC3;
  //DDRM|=0x04;       //slave mode,MISO is output,MOSI,SCK,SS are input.


//  asm NOP;asm NOP;asm NOP;
  ss=0;
  rstb=1; 
  SPICR1|=0x80;    //enable SPI interrupt
   
}






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0