lunchpad MSP430G2553上使用SPI的官方例程如下:
//****************************************************************************** #include "msp430g2553.h"
void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer while (!(P1IN & BIT4)); // If clock sig from mstr stays low, // it is not yet in SPI mode P1SEL = BIT1 + BIT2 + BIT4; P1SEL2 = BIT1 + BIT2 + BIT4; UCA0CTL1 = UCSWRST; // **Put state machine in reset** UCA0CTL0 |= UCCKPL + UCMSB + UCSYNC; // 3-pin, 8-bit SPI master UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** IE2 |= UCA0RXIE; // Enable USCI0 RX interrupt
__bis_SR_register(LPM4_bits + GIE); // Enter LPM4, enable interrupts }
// Echo character #pragma vector=USCIAB0RX_VECTOR __interrupt void USCI0RX_ISR (void) { while (!(IFG2 & UCA0TXIFG)); // USCI_A0 TX buffer ready? UCA0TXBUF = UCA0RXBUF; }
我下载进去,调试的时候,程序一直死在 while (!(P1IN & BIT4)); 这个语句上...请问这是什么原因??SPI也不能自发自收...