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 模式下使用带有 DMA 的 McBSP、它几乎可以工作。 实际上、我有两个问题、我认为解决其中任何一个都可以使事情充分满足我的目的、但这个问题只是关于中断。
我无法触发 DMA 中断。 在调试器中、我可以看到 PieCtrlRegs.PIEIFR7 = 3、这在传输后是有意义的、因为我将 DMA 通道1和2都设置为生成中断:
_dmaRegisters->CH1.MODE.bit.CHINTE = 1; //启用通道中断
_dmaRegisters->ch1.mode.bit.chINTMODE = 1; //传输结束时中断
_dmaRegisters->CH1.mode.bit.PERINTE=1; //启用外设中断事件
_dmaRegisters->CH1.MODE.bit.PERINTSEL = DMA_MXEVTA; //外设中断选择= McBSP MXSYNCA
和
_dmaRegisters->CH2.MODE.bit.CHINTE = 1; //启用通道中断
_dmaRegisters->ch2.mode.bit.chINTMODE = 1; //传输结束时中断
_dmaRegisters->CH2.MODE.bit.PERINTE=1; //启用外设中断事件
_dmaRegisters->CH2.MODE.bit.PERINTSEL = DMA_MREVTA; //外设中断选择= McBSP MRSYNCA
但是、永远不会执行 PieVectTable.DINTCH1和 DINTCH2指向的函数。
我还 在 EALLOW 内设置了所有这些。
IER |= M_INT6 | M_INT7
PieCtrlRegs.PIEIER7.bit.INTx1 = 1;
PieCtrlRegs.PIEIER7.bit.INTx2 = 1;
PieCtrlRegs.PIEIER6.bit.INTx5 = 1;
PieCtrlREgs.PIEIER6.bit.INTx6=1;
我尝试使用中断是因为在这个设置中、我正在手动控制 SPI_SEL/MFSX 线路(因为我遇到的另一个问题)、并且我想使用 DMA 传输完成中断来使该信号无效。
嗯、这是令人尴尬的。 我本来是在其他地方调用 EINT 的、但我之前已经插入了测试代码、所以这是我的问题。
谢谢!