各位大虾好 之前我用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;
}
问题解决 但是 我换了一圈 用了UCB0这个SPI口 正常了 同样的程序为何不同的口出现这个问题 还是不明白