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.
您好!
SPI 似乎在环回模式下工作。 我发送数据并看到它通过 SPIRXBUF 返回。
当我尝试连接到真实的器件时、我在 MISO 引脚上看到预期的数据(使用逻辑分析仪)、但没有通过从 SPIRXBUF 读取来看到它。
我将 GPIO17配置为
// GPIO-17 -引脚功能= SPI MISO
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1;// 0=GPIO、1=SPISOMI-A、2=Resv、3=TZ3
GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 0x3;//异步
GpioCtrlRegs.GPADIR.bit.GPIO17 = 0;// 1=输出、0=输入
我要使用配置 SPI
// SPI 复位
SpiaRegs.SPICCR.bit.SPISWRESET = 0x0;
SpiaRegs.SPICCR.bit.SPISWRESET = 0x1;
SpiaRegs.SPICCR.bit.SPICHAR = 0x7;// 8位
SpiaRegs.SPICTL.bit.talk = 0x1;//发送启用
SpiaRegs.SPICTL.bit.MASTER_SLAVE = 0x1;//主控方
SpiaRegs.SPICTL.bit.OVERRUNINTENA = 0x1;//启用 SPI 溢出 INT
SpiaRegs. SPIBRR = 29;// 1Mbaud @ LSPCLK = 30 MHz
SpiaRegs.SPICTL.bit.CLK_PHASE = 0x1;// SPI_Clk Phase_Delayed
SpiaRegs.SPICCR.bit.SPILBK = 0x0;//启用/禁用环回
SpiaRegs.SPIFFTX.bit.SPIFFENA = 0x1;// SPI FIFO 增强启用
SpiaRegs.SPIFFTX.bit.SPIRST = 0;
SpiaRegs.SPIFFTX.bit.SPIRST = 1;
SpiaRegs.SPIFFTX.bit.TXFIFO = 0x0;//复位发送 FIFO
SpiaRegs.SPIFFTX.bit.TXFFINTCLR = 0x1;
SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0x0;//复位接收 FIFO
SpiaRegs.SPIFFRX.bit.RXFFIL = 0x3;// 3个字处的中断级别
SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 0x1;
SpiaRegs.SPIFFRX.bit.RXFFIENA = 0x1;//启用 Rx FIFO 中断
SpiaRegs.SPIFFTX.bit.TXFIFO = 0x1;
SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0x1;
我要将中断设置为以三个字进行接收、
进入 SPI ISR 时、SPIFFRX = 0x23A3、在我从 SPIRXBUF 读取三次之后、SPIFFRX = 0x20A3
我正在读取 SPIRXBUF 的
易失性 uint16_t 数据;
数据= SpiaRegs。 SPIRXBUF;
该读取在回送模式中按预期工作
有什么想法、为什么我看不到数据从引脚传输到 SPIRXBUF? 还是其他尝试点?
我们发现了可能导致这一问题的电气问题。 请忽略。