你好:
我在使用SPI作为通信方式,我将从主机(MSPM0G3507)发送数据,在从机(ADS8688)接收数据后,将采集到的数据回传到主机;我使用示波器在POCI引脚的波形检测是循环连续的。我设置了接收中断,接收中断一直在触发,但Rxdata中没有数据传出,这是什么情况,下面是代码
在开始新的 SPI 传输之前、首先尝试刷新 SPI RX FIFO。
DL_SPI_DRAINRXFIFO8 还需要检查 ADS 的第一个字节是否有效。
请在SPI_CONTROL_ECHO_INTERRUPTS演示中检查您的案例 它使用DL_SPI_IIDX_RX = 0x00000004U,而不是0x4, 我不确定0x4是否有效。 另外,请参阅SPI_CONTROL_ECHO_INTERRUPTS的SPI Rx中断处理步骤。
void SPI_0_INST_IRQHandler(void) { switch (DL_SPI_getPendingInterrupt(SPI_0_INST)) { case DL_SPI_IIDX_RX: /* Read RX FIFO, then increment data to be transmitted */ gRxData = DL_SPI_receiveData8(SPI_0_INST); gTxData++; /* Toggle the Blue LED after data reception */ DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN); break; default: break; } }
确保您正在读取IIDX,这将有助于在读取时清除中断状态。 您还可以向第165行添加断点,以确保CPU将通过第165行运行。
您能向我发送 SPI 吗? 表达式窗口中的 RxDataW 值、
还向我发送 SPI POCI 线路上的示波器捕获数据?
最好一起捕获 SCK、PICO 和 POCI 线路。
需要比较它们。
您好,
由于帖子重复,将会关闭此帖子