工具与软件:
尊敬的团队:
我想在具有 DMA 且当前使用的外设模式下使用 AM2634 mcspi_loopback_dma 作为参考的示例代码、对于8字节、此示例正常工作意味着它在获得配置的接收字节后生成中断 、但每当变为8更改为1时、它不再接收数据意味着我希望在每次接收字节时生成中断、
附加的图像显示当发送器(主器件)发送8个字节时它提供两次(黄色)中断、芯片选择(紫色)
请建议如何 在 DMA 中的单字节上配置 SPI 数据接收中断
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.
工具与软件:
尊敬的团队:
我想在具有 DMA 且当前使用的外设模式下使用 AM2634 mcspi_loopback_dma 作为参考的示例代码、对于8字节、此示例正常工作意味着它在获得配置的接收字节后生成中断 、但每当变为8更改为1时、它不再接收数据意味着我希望在每次接收字节时生成中断、
附加的图像显示当发送器(主器件)发送8个字节时它提供两次(黄色)中断、芯片选择(紫色)
请建议如何 在 DMA 中的单字节上配置 SPI 数据接收中断
Rohal,
根据驱动程序的配置方式、您需要提供总字节数/计数和数据大小。 请检查的参数
第1种方法(无 FIFO): 您将接收到的中断总数为128/1个字节。 例如、在每个事务上、您将收到 一个中断。
第2种方式(使用 FIFO): 假设 FIFO 触发电平为16、即每隔16个字节、您将获得一个中断。 因此、在这种情况下、中断总数为128Bytes/16Bytes = 8。
如何禁用 FIFO 、因为它无法实现清空

#define APP_MCSPI_MSGSIZE (128U)
MCSPI_Transaction 初始化(&spiTransaction);
spiTransaction.channel = gConfigMcspi1ChCfg[0].chNum;
spiTransaction.dataSize = 8U;
spiTransaction .csDisable = true;
spiTransaction.count = 1; //APP_MCSPI_MSGSIZE /(spiTransaction.dataSize/8);
spiTransaction.txBuf = NULL;
spiTransaction .rxBuf =(void *) gMcspiRxBuffer;
spiTransaction .args = NULL;
startTimeInUSec = ClockP_getTimeUsec ();
对于(j = 0U;j < APP_MCSPI_TRANSFER_LOOPCOUNT;j++)
{
transferOK = MCSPI_transfer (gMcspiHandle[CONFIG_MCSPI1]、&spiTransaction);
}
在每个字节上接收中断的配置是否正确?