TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F6736SPI通讯问题

SPI通讯在使用过程中时钟极性无法设置,空闲时并非高或者低电平,而是由发送寄存器的最后一位决定的,举例如果是0x08,那么接下来没有进行发送的时间里都是低电平,直到下一次发送数据,如果是0x09相反,持续为高电平。

代码如下

SPI设置

// Setup eUSCI_A0
        P2OUT &= ~BIT7;                               // Clear P1.0
        P2DIR |= BIT7;                                // Set P1.0 to output direction
        P2OUT &= ~0x40;                              //LED2on//ss置低
        P1SEL |= BIT2 | BIT3 | BIT6;                  // Set P1.0,P1.2,P1.3,P1.6 to non-IO
        UCA0CTLW0 |= UCSWRST;                         // **Put state machine in reset**
        UCA0CTLW0 |= UCMST  | UCSYNC | UCCKPL | UCMSB ; // 3-pin, 8-bit SPI master
                                    // Clock polarity high, MSB
        UCA0CTLW0 |= UCSSEL_2;                        // SMCLK
        UCA0BRW_L = 0x01;                             // 16MHz
        UCA0BRW_H = 0;                                //
        UCA0MCTLW = 0;                                // No modulation
        UCA0CTLW0 &= ~UCSWRST;                        // **Initialize USCI state machine**

发送在定时器中断中运行

       if (!(UCA1IFG & UCTXIFG)) ;
       UCA1TXBUF =0x08;

Susan Yang:

请问MSP430F6736是master?能否详细说明下您的软硬件情况?UCCKPH是否有进行设置?

user5310564:

回复 Susan Yang:

工作在mater模式,时钟选择系统时钟,UCCKPH不操作或者按位操作改为0或者1都不行,发送结束后没有办法拉高,会保持上一次发送的最后一位状态,请问我需要在将要发送的数据写入UCA1TXBUF后在进行什么操作吗?

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F6736SPI通讯问题
分享到: 更多 (0)