用的是CCS5.3,下载了例子msp430g2xx3_usci_spi_master,打开以后在“USCI_A0_init.c”看到了这样一段:
UCA0CTL0 = UCCKPL + UCMSB + UCMST + UCMODE_0 + UCSYNC;
因为我用的是ADS1118,SPI的四线制,看了一下手册msp430x2xx,里面说:
UCMODEx Bits 2-1 USCI mode. The UCMODEx bits select the synchronous mode when UCSYNC = 1.
00 3-pin SPI
01 4-pin SPI with UCxSTE active high: slave enabled when UCxSTE = 1
10 4-pin SPI with UCxSTE active low: slave enabled when UCxSTE = 0
11 I2C mode
所以,把UCMODE_0改成了UCMODE_2,然后发现在MSP430G2553.h里面
#define UCMODE_0 (0x00) /* Sync. Mode: USCI Mode: 0 */
#define UCMODE_1 (0x02) /* Sync. Mode: USCI Mode: 1 */
#define UCMODE_2 (0x04) /* Sync. Mode: USCI Mode: 2 */
#define UCMODE_3 (0x06) /* Sync. Mode: USCI Mode: 3 */
这里面不应该是0x00、0x01、0x02、0x03么?怎么会是0、2、4、6呢,对应的是000、010、100、110,与手册中UCMODEx描述对不上啊