请教关于SPI通讯的问题
我现在正在做msp430扩展flash,用的是at45db161,参考了一下网上的资料,硬件连接为P5.0----CS
P5.1----SI
P5.2----SO
P5.3----SCK
P5.4----RESET
但是读状态寄存器总是返回不固定的值,即便写无效命令也会返回不固定的值,实在不清楚是哪的问题,希望大家指教一下,下面是SPI初始化和读状态寄存器的程序。
void SPI_Init(void) {
P5SEL = 0x0E; // Setup P5 for SPI mode,P5.1 P5.2 P5.3 选择为片内外设,其它为IO
P5DIR = 0x1B;
U1CTL = CHAR + SYNC + MM+SWRST ; // 8-bit, SPI, Master
U1TCTL =CKPL+SSEL1 + STC; // Polarity, SMCLK, 3-wire CKPL 数据在下降沿输出
U1BR0 = 0x02; // SPICLK = SMCLK/2
U1BR1 = 0x00;
U1MCTL = 0x00;
ME2= USPIE1; // Module enable
U1CTL&= ~SWRST; // SPI enable
IE2|=UTXIE1+URXIE1;
P5OUT &= ~0x10; // Toggle P5.4: slave reset
P5OUT |= 0x10;
}
void write_SPI(unsigned char data) {
U1TXBUF = data;
while ((IFG2 & UTXIFG1)==0);// USART0 TX buffer ready?
}
页:
[1]