工具/软件:
我使用 MCSPI_transferCancel ()取消了 MCSPI_transfer()的待机状态。
我可以检查被调用回调函数的状态以确认其已取消。
问题是,取消后调用代码中的 MCSPI_transfer()时不调用回调函数。
因此、我将其重新初始化、然后重新打开驱动程序。
但回调函数仍然不调用。 取消后、我应该做些什么才能使回叫正常工作?
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.
工具/软件:
我使用 MCSPI_transferCancel ()取消了 MCSPI_transfer()的待机状态。
我可以检查被调用回调函数的状态以确认其已取消。
问题是,取消后调用代码中的 MCSPI_transfer()时不调用回调函数。
因此、我将其重新初始化、然后重新打开驱动程序。
但回调函数仍然不调用。 取消后、我应该做些什么才能使回叫正常工作?
我解决了这个问题。
我知道只有 SPI 主设备获取数据后才会调用回调函数、我相应地修改了代码。 感谢您的支持。
这是设置参数。
MCSPI_OpenParams gMcspiOpenParams[CONFIG_MCSPI_NUM_Instances]={
{
transferMode = MCSPI_transfer_mode_callback、
.transferTimeout = SystemP_NO_WAIT、
transferCallbackFxn = spi_callbackFxn、
.loopback = MCSPI_LOOPBACK_DISABLE、
.msMode = MCSPI_MS_MODE_peripheral、
mcspiDmaIndex =-1、
}、
};
静态 MCSPI_Attrs gMcspiAttrs[CONFIG_MCSPI_NUM_EXAMS]={
{
.baseAddr = CSL_MCU_MCSPI0_CFG_BASE、
.inputClkFreq = 160000000U、
.intriNum = 30、
OperMode = MCSPI_OPER_MODE_INTERRUPT、
.intriority = 4U、
.chMode = MCSPI_CH_MODE_MULTI、
.pinMode = MCSPI_PINMODE_4引脚、
.initDelay = MCSPI_INITDLY_0、
}、
};