Board logo

标题: [求助]SPI 的相关问题 [打印本页]

作者: help02034025    时间: 2006-5-12 15:17     标题: [求助]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++)
      { }
    }
 }


当语句执行到  while(!(SPI0SR & 0X80)) 的时候就跳不出去了,数据好像也发送出去了,


不知道为什么,好奇怪,请高手指教!


我的片子是 MC9S12DG128B




作者: bgma_jn    时间: 2006-5-13 09:03

SPI0CR1=0XCC应该就可以了
作者: xfj1984    时间: 2006-6-9 16:24

先把标志清一下试试
我最近也在用
有联系方式可以讨论一下吗
xfj1984@163.com
作者: strongchen    时间: 2006-6-12 09:57

为什么不直接用发送完成标志的位定义?
作者: flying1983    时间: 2006-6-18 21:05

应该配置一下寄存器,spi0模块可以通过设置寄存器MODRR来选择连接到那个io上
作者: pas0753    时间: 2006-6-23 19:17

while(!(SPI0SR & 0x80))这句不是在等待发送完成吧,它是在等待数据缓存器是否更新。




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