Board logo

标题: [求助]用SPI时数据发不出去 [打印本页]

作者: help02034025    时间: 2006-5-2 23:16     标题: [求助]用SPI时数据发不出去

 void SPI0_init(void)
 {
   SPI0BR  =0X77 ;     //设定波特率  BUS/2048
   SPI0CR2 =0X00 ;     // If the SPI is enabled as master and the MODFEN bit is low,
                       // then the SS pin is not used by the SPI.
   SPI0CR1 =0x5C ;  
   }


void SPI0 (int SPI0_VALUE)
 {
   PORTE_BIT0=0;       //作为控件的始能信号控制端口
   SPI0DR    =SPI0_VALUE;    //MCU将要发送出去的数据
      while(!(SPI0SR&0x80))   //等待发送完成
    {
    }
    for(i=0;i<10;i++)   //延时
    {
      for(j=0;j<10000;j++)
      { }
    }
 }
 这是两个子程序


在主函数里先后调用这两个子函数,但是数据就是发不出去,


为什么?请大虾赐教!(我用的是MC9S12DG128B)


作者: help02034025    时间: 2006-5-2 23:24

而且当执行到
PORTE_BIT0=0; //作为控件的始能信号控制端口
SPI0DR =SPI0_VALUE; //MCU将要发送出去的数据
这两句时 串行时钟线上的信号全为高!
请大虾赐教!(急)

作者: help02034025    时间: 2006-5-3 17:14

硬仿真的时候从 SPI0DR 读出的值一直是255。
不知道为什么,请高手指教!
作者: dreamcatcher    时间: 2006-5-19 17:08

我也遇到这个问题,SPI1DR读出的值一直是FF
不知道搂主解决了没有啊?
作者: dreamcatcher    时间: 2006-6-1 21:26

用SPI0需要设置以下MODRR寄存器




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