首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]SPI 的相关问题

[求助]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



HELP!
SPI0CR1=0XCC应该就可以了
先把标志清一下试试
我最近也在用
有联系方式可以讨论一下吗
xfj1984@163.com
为什么不直接用发送完成标志的位定义?
海纳百川  有容乃大
应该配置一下寄存器,spi0模块可以通过设置寄存器MODRR来选择连接到那个io上
while(!(SPI0SR & 0x80))这句不是在等待发送完成吧,它是在等待数据缓存器是否更新。
真心求教!!!
返回列表