大家好、我将 TMS320F28035 SPI 设置为从器件。 它部分工作。 它检测 CLK、它计数16位并输出信息。 主器件正确接收。
但它始终在 SIMO 引脚(GPIO24)上读取0xFFFF。 即使我在它上归零也是如此。 我尝试了所有我想到的东西。 没有用处。
问题是什么?
以下是我的设置:
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO24 = 0; //启用 GPIO24上的上拉电阻(SPISIMOB) //此引脚始终接收0xFFFF
GpioCtrlRegs.GPAPUD.bit.GPIO13 = 0; //启用 GPIO13上的上拉电阻器(SPISOMIB)
GpioCtrlRegs.GPAPUD.bit.GPIO14 = 0; //启用 GPIO14上的上拉电阻(SPICLKB)
GpioCtrlRegs.GPAPUD.bit.GPIO15 = 0; //启用 GPIO15上的上拉电阻器(SPISTEB)
GpioCtrlRegs.GPAQSEL2.bit.GPIO24 = 3; //异步输入 GPIO24 (SPISIMOB) //此引脚接收0xFFFF
GpioCtrlRegs.GPAQSEL1.bit.GPIO13 = 3; //异步输入 GPIO13 (SPISOMIB)
GpioCtrlRegs.GPAQSEL1.bit.GPIO14 = 3; //异步输入 GPIO14 (SPICLKB)
GpioCtrlRegs.GPAQSEL1.bit.GPIO15 = 3; //异步输入 GPIO15 (SPISTEB)
GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 3; //将 GPIO24配置为 SPISIMOB //此引脚接收0xFFFF
GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 3; //将 GPIO13配置为 SPISOMIB
GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 3; //将 GPIO14配置为 SPICLKB
GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 3; //将 GPIO15配置为 SPISTEB
EDIS;
SpibRegs.SPICCR.bit.SPISWRESET=0;//复位 SPI
SpibRegs.SPICCR.All=0x000F; //16位字符
SpibRegs.SPICTL.All=0x0003; //中断被启用、从器件、 主器件/从器件 Xmit 被启用
SpibRegs.SPISTS.All=0x0000;
// SpibRegs.SPIBRR=0x0063; //波特率
SpibRegs.SPIPRI.All=0x0010;
SpibRegs.SPICCR.bit.CLKPOLARITY = 0; //1;//0;//1;//0
SpibRegs.SPICTL.bit.CLK_PHASE_=0; //1; //1;//0;//0
SpibRegs.SPICCR.bit.SPISWRESET=1; //启用 SPI