关于MSP430F6733 SPI操作问题

关于MSP430F6733 SPI操作问题

此问题尚无答案
All Replies
  • 秀才80分

    第一次使用430单片机,在操作SPI上遇到了一些问题,请教一下

    1.SPI初始化

    void SPI_Init(void)
    {
    //UCA2 Init

    P2SEL |=BIT2|BIT3|BIT5;

    P2DIR |=BIT7;
    P2OUT |=BIT7; //CS=1;

    UCA2CTLW0 |= UCSWRST; // **Put state machine in reset**
    UCA2CTLW0 |= UCMST | UCSYNC |UCCKPL |UCCKPH |UCMSB; // 3-pin, 8-bit SPI master
    // Clock polarity high, MSB
    UCA2CTLW0 |= UCSSEL_2; // SMCLK
    UCA2BRW_L = 0x06; // /2
    UCA2BRW_H = 0; //
    UCA2MCTLW = 0; // No modulation
    UCA2CTLW0 &= ~UCSWRST; // **Initialize USCI state machine**
    //UCB0IE = UCRXIE; // Enable USCI_A0 RX,TX interrupt

    __delay_cycles(100); // Wait for slave to initialize

    }

    2.SPI读写操作

    unsigned char SPI_RWByte(unsigned char trs)
    {
    unsigned char T=0;

    while(!(UCA2IFG &UCTXIFG));

    UCA2TXBUF = trs; // Transmit first character

    while(!(UCA2IFG &UCTXIFG));
    T=UCA2RXBUF;

    return T;

    }

    他是跟FRAM之间通信。FRAM的SPI模式模式0和模式3都可以用(既  UCCKPH=0&&UCCKPL=0 或者UCCKPH=1&&UCCKPL=1),

    但是SPI读写一直有问题,请教一下这个SPI的读写操作有问题吗,还是说配置有问题?

    望知道的指点一下

  • 榜眼18678分

    你好,

    我初步看了一下程序,有如下几点排除建议:

    1.SPI 采样的3线还是4线?

    如果按照你程序的三线,CS另外用GPIO,我看到管脚初始化只有:

    P2SEL |=BIT2|BIT3|BIT5;
    P2DIR |=BIT7;
    P2OUT |=BIT7; //CS=1;

    CLK, MOSI要设置为输出

    2.用示波器截SPI发送波形。




    祝好

    Michael Qian

  • 秀才80分

    SPI采用的是3线

    CLK和MOSI要设置输出?

    我理解的为只要引脚选择为第二功能,那引脚的输入跟输出我不用去管?

    CS脚我初始化为不选中。在具体操作芯片的时候我有用的。

     

    我这个SPI的读写是否有问题?