第一次使用430单片机,在操作SPI上遇到了一些问题,请教一下
1.SPI初始化
void SPI_Init(void)
{
//UCA2 Init
P2SEL |=BIT2|BIT3|BIT5;
P2DIR |=BIT7;
P2OUT |=BIT7; //CS=1;
UCA2CTLW0 |= UCSWRST; // **Put state machine in reset**
UCA2CTLW0 |= UCMST | UCSYNC |UCCKPL |UCCKPH |UCMSB; // 3-pin, 8-bit SPI master
// Clock polarity high, MSB
UCA2CTLW0 |= UCSSEL_2; // SMCLK
UCA2BRW_L = 0x06; // /2
UCA2BRW_H = 0; //
UCA2MCTLW = 0; // No modulation
UCA2CTLW0 &= ~UCSWRST; // **Initialize USCI state machine**
//UCB0IE = UCRXIE; // Enable USCI_A0 RX,TX interrupt
__delay_cycles(100); // Wait for slave to initialize
}
2.SPI读写操作
unsigned char SPI_RWByte(unsigned char trs)
{
unsigned char T=0;
while(!(UCA2IFG &UCTXIFG));
UCA2TXBUF = trs; // Transmit first character
while(!(UCA2IFG &UCTXIFG));
T=UCA2RXBUF;
return T;
}
他是跟FRAM之间通信。FRAM的SPI模式模式0和模式3都可以用(既 UCCKPH=0&&UCCKPL=0 或者UCCKPH=1&&UCCKPL=1),
但是SPI读写一直有问题,请教一下这个SPI的读写操作有问题吗,还是说配置有问题?
望知道的指点一下