qiannianzuoan 发表于 2010-3-14 21:30:13

请教关于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]
查看完整版本: 请教关于SPI通讯的问题