智能车制作

标题: XS128调试SPI,BDM在线调试一切OK,自己运行一点反应也没有。 [打印本页]

作者: kaibi9003    时间: 2010-4-16 16:05
标题: XS128调试SPI,BDM在线调试一切OK,自己运行一点反应也没有。
在线调试没有问题,点下复位,直接运行SPI四条线一点反应都没有。。。哪位大神解决一下啊。

void SPI0Init(void)  //SPI0初始化函数
{
  
  SPI0CR1_SPE=0;//SPI0使能
  
  SPI0CR1_SPIE=0;//SPI0中断使能
  SPI0CR1_MSTR=1;//1-主/0-从,选择
  SPI0CR1_CPOL=1;//时钟极性,0-空闲时低/1-空闲时高
  SPI0CR1_CPHA=0;//时钟相位,0-奇数沿采样/1-偶数沿采样
  SPI0CR1_SSOE=1;//从选择输出使能
  SPI0CR1_LSBFE=0;//0-先传送高位/1-先传送低位
  SPI0CR2_XFRW=1;//传送长度,0-8位/1-16位
  SPI0CR2_MODFEN=1;//0-SS口不用于SPI/1-SS口取决于MODF位
  //分辨率BaudRateDivisor = (SPPR + 1)* 2^(SPR + 1)
  SPI0BR = 0x00 | 0x00; //30MHz
  
  SPI0CR1_SPE=1;//SPI0使能
  
  MODRR   = 0x10; //SCI1/SPI0路径选择
  //          TXD   RXD         MISO0  MOSI0 SCK0  SS0
  //7:6--00:  PS3   PS2   4--0:  PS4    PS5   PS6  PS7 (112Pin)
  //     01:  PP2   PP0      1:  PM2    PM4   PM5  PM3 (80/64Pin)
  //     10:  PM1   PM0
  //     11:  Reserved
  
}

while(1)//main函数程序
{
  //PTM&=~(1<<3);
  SPI0DR=0x8310;
  while(!(SPI0SR_SPIF));
        j=SPI0DR;
  putint(j);
  uart_putchar(' ');
  Delay_ms(500);
  
  //PTM|=(1<<3);
   _FEED_COP();
}
作者: zhouhong    时间: 2010-4-19 09:24
我也遇见同样的问题
作者: kaibi9003    时间: 2010-4-21 21:26
回复 2# zhouhong


    我解决了 呵呵。
while(!(SPI0SR_SPTEF));//加上这句话就OK了 呵呵
SPI0DR=0x8310;
  while(!(SPI0SR_SPIF));
        j=SPI0DR;
作者: 王怀玉    时间: 2010-4-30 15:28
学习学习
作者: qnbs1    时间: 2010-6-7 18:32
这个可以不用呀。我们的就不用
作者: sy373466062    时间: 2010-11-24 17:25
学习了
作者: zhangjiarui    时间: 2010-11-25 10:18
学习
作者: spwbaha    时间: 2011-4-3 15:28
虚心的学习
作者: NNG95    时间: 2012-4-13 21:19
同样不会,求解呀
作者: 恶栈    时间: 2013-1-18 12:44
我也遇到这个问题了。感谢楼上的各位
作者: WK033857    时间: 2013-4-13 10:49
请问80引脚的S12芯片的SPI用哪几个引脚啊,分别与NRF24L01的 CE,CSN,SCK,MOSI,MISO,IRQ怎么连??谢谢了!





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2