请教大虾关于msp430f5438的问题,非常急

kaka0202   2013-6-5 08:41 楼主
各位大虾好 之前我用msp430f149的SPI控制nrf24l01 做到了正常通信 最近使用msp430f5438将程序移植 却始终无法通信 。在示波器上看时序 发现5438的SPI中的MOSI CLK都正常工作。但是MISO读回的值始终为0XFF,程序改了好几次,一直不成功,我是第一次使用f5438 不知哪里用错了 贴上我SPI的初始化配置 请各大侠帮帮忙。
SPI初始化
void SPI_Init()
{
  P3SEL=0x31;
  UCA0CTL1=UCSWRST;
  UCA0CTL0 |= UCMST+UCSYNC+UCMSB;
  UCA0CTL1 |= UCSSEL_2;
  UCA0BR0 = 0x02;
  UCA0BR1 = 0;  
  UCA0MCTL = 0;
  UCA0CTL1 &= ~UCSWRST;
  UCA0IE&=~(UCTXIE+UCRXIE);
}
SPI读写函数
unsigned char SPI_RW(unsigned char wdata)
{
  while(!(UCA0IFG&UCTXIFG));
  UCA0TXBUF=wdata;
  while(!(UCA0IFG&UCRXIFG));
  return UCA0RXBUF;
}

回复评论 (7)

自顶.没人用过?
点赞  2013-6-5 15:20
用io口模拟SPI是可行的。
点赞  2013-6-5 15:40
但是用硬件SPI MISO始终是0XFF
点赞  2013-6-5 15:40
换另外一个SPI口 MISO又是0x00 很崩溃
点赞  2013-6-5 15:41
兄弟,你把IO口都配置成外设模式了吗?
点赞  2013-6-6 10:46
看看管脚顺序是不是接反了
《MCU工程师炼成记》作者之一
点赞  2013-6-6 19:18
问题解决 但是 我换了一圈 用了UCB0这个SPI口 正常了 同样的程序为何不同的口出现这个问题 还是不明白
点赞  2013-6-9 09:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复