This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28379D中怎么将SPIA配置为MASTER进行主从机通讯

Other Parts Discussed in Thread: TMS320F28379D

TMS320F28379D中怎么将SPIA配置为MASTER进行主从机通讯

  • 请问你还是需要进行同一芯片的SPIA和SPIB通讯,并且SPIA作为主机吗?例程中就是将SPIA配置为master进行演示的。

    void InitSpi(void)

    {

       // Initialize SPI-A

       // Set reset low before configuration changes

       // Clock polarity (0 == rising, 1 == falling)

       // 16-bit character

       // Enable loop-back

       SpiaRegs.***.bit.SPISWRESET = 0;

       SpiaRegs.***.bit.CLKPOLARITY = 0;

       SpiaRegs.***.bit.*** = (16-1);

       SpiaRegs.***.bit.SPILBK = 1;

       // Enable master (0 == slave, 1 == master)

       // Enable transmission (Talk)

       // Clock phase (0 == normal, 1 == delayed)

       // SPI interrupts are disabled

       SpiaRegs.***.bit.MASTER_SLAVE = 1;

       SpiaRegs.***.bit.TALK = 1;

       SpiaRegs.***.bit.CLK_PHASE = 0;

       SpiaRegs.***.bit.SPIINTENA = 0;

       // Set the baud rate

       SpiaRegs.SPIBRR.bit.SPI_BIT_RATE = SPI_BRR;

       // Set FREE bit

       // Halting on a breakpoint will not halt the SPI

       SpiaRegs.SPIPRI.bit.FREE = 1;

       // Release the SPI from reset

       SpiaRegs.***.bit.SPISWRESET = 1;

    }

  • 请问当我设置spia和spib的时候InitSpiaGpio()这个函数 我是这么写的,但是不确定是否正确。代码如下。
    EALLOW;

    //
    // Enable internal pull-up for the selected pins
    //
    // Pull-ups can be enabled or disabled by the user.
    // This will enable the pullups for the specified pins.
    // Comment out other unwanted lines.
    //
    GpioCtrlRegs.GPBPUD.bit.GPIO58 = 0;

    GpioCtrlRegs.GPBPUD.bit.GPIO59 = 0;

    GpioCtrlRegs.GPBPUD.bit.GPIO60 = 0;
    GpioCtrlRegs.GPBPUD.bit.GPIO61 = 0;

    GpioCtrlRegs.GPBPUD.bit.GPIO63 = 0;
    GpioCtrlRegs.GPCPUD.bit.GPIO64 = 0;
    GpioCtrlRegs.GPCPUD.bit.GPIO65 = 0;
    GpioCtrlRegs.GPCPUD.bit.GPIO66 = 0;

    //
    // Set qualification for selected pins to asynch only
    //
    // This will select asynch (no qualification) for the selected pins.
    // Comment out other unwanted lines.
    //
    GpioCtrlRegs.GPBQSEL2.bit.GPIO58 = 3;

    GpioCtrlRegs.GPBQSEL2.bit.GPIO59 = 3;

    GpioCtrlRegs.GPBQSEL2.bit.GPIO60 = 3;
    GpioCtrlRegs.GPBQSEL2.bit.GPIO61 = 3;

    GpioCtrlRegs.GPBQSEL2.bit.GPIO63 = 3;
    GpioCtrlRegs.GPCQSEL1.bit.GPIO64 = 3;
    GpioCtrlRegs.GPCQSEL1.bit.GPIO65 = 3;
    GpioCtrlRegs.GPCQSEL1.bit.GPIO66 = 3;

    //
    //Configure SPI-A pins using GPIO regs
    //
    // This specifies which of the possible GPIO pins will be SPI functional
    // pins.
    // Comment out other unwanted lines.
    //
    GpioCtrlRegs.GPBMUX2.bit.GPIO58 = 1;

    GpioCtrlRegs.GPBMUX2.bit.GPIO59 = 1;

    GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 1;
    GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 1;

    GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 1;
    GpioCtrlRegs.GPCMUX1.bit.GPIO64 = 1;
    GpioCtrlRegs.GPCMUX1.bit.GPIO65 = 1;
    GpioCtrlRegs.GPCMUX1.bit.GPIO66 = 1;

    EDIS;