2052|1

11

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MSP430的spi通信问题 [复制链接]

void Init_CLK()//系统时钟初始化
{
   uchar j;
   WDTCTL = WDTPW + WDTHOLD;        //看门狗控制寄存器WDTCTL,禁止看门狗              
//-----------------------int clock--------------------- //               
   BCSCTL1 &= ~(XT2OFF+XTS);   //启用XT2 8M晶体 ,ACLK为XT1
//  BCSCTL2 |= SELM1;           //MCLK 为 XT2,不分频
  // BCSCTL2 |= SELS;            //SMCLK 为 XT2,不分频

//-------------------等待时钟源转换完成-----------------//
  do
  {
    IFG1&=~OFIFG;//清振荡器失效标志
    for(j=0xFF;j>0;j--);//延时,待稳定.
  }
  while((IFG1&OFIFG)!=0);//若振荡器失效标志有效
  BCSCTL2 |= SELM_2+SELS+DIVS_3; // MCLK = XT2 = 8M ; SMCLK = XT2/8 = 1M
}
void Init_SPI(void)
{
UCTL0 |=SWRST;                              
SWRST=1,设置完成后SWRST=0。
UCTL0 |= CHAR+SYNC+MM;                          //spi主模式,8位数据
UTCTL0 = STC+ SSEL1;                          //3线模式,SSEL1选MCLK,SSEL0选ACK
UTCTL0 = CKPL;                              //上升沿发送,下降沿接收
UBR00 = 0x0A;                                   //9600=03
UBR10 = 0x00;                                 
UMCTL0 = 0x00;
ME1 |= USPIE0;                                
UCTL0 &=~ SWRST;
P3SEL |= 0x0E;                                 //active P3.0 & P3.3 for SPI//选择IO口功能:0是IO口,1模块
P3DIR |= 0x0B;                                 //P3.1(SIMO)& P3.3(UCLK)//IO口方向
P3OUT |= BIT0;
//IE1 |= URXIE0;
IE1 &=~ URXIE0;                                 //接收中断允许, IE1 &=~ URXIE0中断取消;
//IE1 |= URXIE0+UTXIE0;
//_EINT();//开中断,
}


unsigned char spiSendByte(unsigned char data)
{
  while((IFG1 & UTXIFG0)==0);
// while (!(UTCTL0 & TXEPT));//判断数据为空
  TXBUF0 = data;
  
// while ((UTCTL0 & TXEPT)==0);
  while ((IFG1 & URXIFG0)==0);
  
  return(RXBUF0);
}
unsigned char SPReadbyte(void)
{
  return spiSendByte(0);
}
程序一直停在  while ((IFG1 & URXIFG0)==0);不知道为什么,第一次用SPI,求大神帮助啊

最新回复

ME1 = UTXE0 + URXE0 ;//允许收发了没? ME2 |= USPIE1;    // Module enable模块使能了没? 还有就是你使用哪个型号的430?  详情 回复 发表于 2014-2-27 10:20
 
点赞 关注(1)

回复
举报

2781

帖子

419

TA的资源

五彩晶圆(中级)

沙发
 
ME1 = UTXE0 + URXE0 ;//允许收发了没?

ME2 |= USPIE1;    // Module enable模块使能了没?


还有就是你使用哪个型号的430?
 
个人签名
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表