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.

PROBLEM OF COMMUNICATION SPI WITH TWO microcontroleur TMS320F28335

Other Parts Discussed in Thread: TMS320F28335

My problem is summarized as follows.
I have done the serial communication (serial peripheral interface: SPI) between two microcontroller TMS320F28335, one a master and the other as slave.
The communication is stable for a number integer, but when I try to transfer a number of real type, such as number 0.707,  i get only 0.0 in master.
I like to have the same number as master and slave,
thank you for helping me find a solution to this problem.

Here are some of the master program

while(1)
{

GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 0;
SpiaRegs.SPITXBUF = a;

while (SpiaRegs.SPISTS.bit.INT_FLAG == 0)

GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1;
a=SpiaRegs.SPIRXBUF;

GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1;


while(CpuTimer0.InterruptCount == 0);

CpuTimer0.InterruptCount = 0;
EALLOW;
SysCtrlRegs.WDKEY = 0x55; // service WD #1
EDIS;
}

}

void Gpio_select(void)
{
EALLOW;
GpioCtrlRegs.GPAMUX1.all = 0; // GPIO15 ... GPIO0 = General Puropse I/O
GpioCtrlRegs.GPAMUX2.all = 0; // GPIO31 ... GPIO16 = General Purpose I/O

GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 1; // SPIA pin SPISIMOA enabled
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1; // SPIA pin SPISOMI enabled
GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 1; // SPIA pin SPICLKA enabled
GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1; // SPIA pin SPISTEA enabled


GpioCtrlRegs.GPBMUX1.all = 0; // GPIO47 ... GPIO32 = General Purpose I/O
GpioCtrlRegs.GPBMUX2.all = 0; // GPIO63 ... GPIO48 = General Purpose I/O
GpioCtrlRegs.GPCMUX1.all = 0; // GPIO79 ... GPIO64 = General Purpose I/O
GpioCtrlRegs.GPCMUX2.all = 0; // GPIO87 ... GPIO80 = General Purpose I/O

EDIS;
}

void SPI_Init(void)
{
SpiaRegs.SPICCR.bit.SPISWRESET = 0; // Reset SPI
SpiaRegs.SPICCR.bit.CLKPOLARITY = 1; // Data Out falling / In rising edge
// SPICLK passive = high
SpiaRegs.SPICCR.bit.SPILBK = 0; // no loobback mode
SpiaRegs.SPICCR.bit.SPICHAR = 15; // 16 characters
SpiaRegs.SPICCR.bit.SPISWRESET = 1; // relinq. from reset


SpiaRegs.SPICTL.bit.CLK_PHASE = 0; // no clock delay
SpiaRegs.SPICTL.bit.MASTER_SLAVE = 1;// SPI - Master
SpiaRegs.SPICTL.bit.TALK = 1; // enable TALK
SpiaRegs.SPICTL.bit.SPIINTENA = 0; // no SPI-Interrupts enabled
SpiaRegs.SPICTL.bit.OVERRUNINTENA =0;// overrun interrupt disabled


SpiaRegs.SPIBRR = 0x124;

}