Thread 中讨论的其他器件: C2000WARE
工具与软件:
我想使用 TMS320F28377D 转 SPI 与 DRV8353RS 进行通信。
但是、在 SPI 通信中、Tx 正常工作、但 Rx 数据冻结在0xFFFF、数据没有改变。
如果你能给我一个关于这种现象的答案、我将不胜感激。 下面是编写的代码。
--------------------------------------------------------
void SetupSpia (void){
EALLOW;
CpuSysRegs.PCLKCR8.bit.SPI_A = 1U;
EDIS;
SpiaRegs.SPICCR.bit.SPISWRESET = 0U;
SpiaRegs.SPICCR.bit.CLKPOLARITY = 0U;
SpiaRegs.SPICCR.bit.SPICHAR = 15u;
SpiaRegs.SPICCR.bit.SPILBK = 0U;
SpiaRegs.SPICTL.bit.MASTER_SLAVE = 1U;
SpiaRegs.SPICTL.bit.talk = 1u;
SpiaRegs.SPICTL.bit.SPIINTENA = 1U;
SpiaRegs.SPICTL.bit.CLK_PHASE = 0u;
SpiaRegs.SPICTL.bit.OVERRUNINTENA = 0U;
SpiaRegs.SPIBRR.all = 0x0009U;
SpiaRegs.SPIFFTX.bit.SPIRST = 1;
SpiaRegs.SPIFFTX.bit.SPIFFENA = 0;
SpiaRegs.SPIFFTX.bit.TXFIFO = 0;
SpiaRegs.SPIFFTX.bit.TXFFST = 0;
SpiaRegs.SPIFFTX.bit.TXFFINT = 0;
SpiaRegs.SPIFFTX.bit.TXFFINTCLR = 1;
SpiaRegs.SPIFFTX.bit.TXFFIENA = 0;
SpiaRegs.SPIFFTX.bit.TXFFIL = 0;
SpiaRegs.SPIFFRX.bit.RXFFOVF = 0;
SpiaRegs.SPIFFRX.bit.RXFFOVFCLR = 1;
SpiaRegs.SPIFFRX.bit.RXFIFORESET = 1;
SpiaRegs.SPIFFRX.bit.RXFFST = 0;
SpiaRegs.SPIFFRX.bit.RXFFINT = 0;
SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 1;
SpiaRegs.SPIFFRX.bit.RXFFIENA = 0;
SpiaRegs.SPIFFRX.bit.RXFFIL = 0;
SpicRegs.SPIFFCT.all = 0U;
SpiaRegs.SPIPRI.bit.free = 1;
SpiaRegs.SPICCR.bit.SPISWRESET = 1U;
}
void spi_comm (void)
{
GpioDataRegs.GPBCLEAR.bit.GPIO57 = 1;
while (SpiaRegs.SPISTS.bit.BUFFULL_flag!= 0){
//等待
}
SpiaRegs。 SPITXBUF = 0x8800;
//等待接收到数据
while (SpiaRegs.SPISTS.bit.INT_flag = 0){
}
SPI_DATA_Rx = SpiaRegs。 SPIRXBUF;
while (SpiaRegs.SPISTS.bit.overrid_flag = 1){
SpiaRegs.SPISTS.bit.overrid_flag = 1;
}
GpioDataRegs.GPBSET.bit.GPIO57 = 1;
}
--------------------------------------------------------
连接 CCS 屏幕和原理图。 希望你度过美好的一天。
e2e.ti.com/.../TMS320F28377D.pdf
