您好!
我运行了下面的示例代码。
调用 uDMAChannelAssign 时 DMATXRIS 置1。
因此、如果我调用 IntEnable、即使 DMA 传输尚未完成、也会产生中断。
为什么 DMATXRIS 在赋值后被中断、是否有任何权变措施?
此评估板为 MSP42E411Y-BGAEVM Rev A
===================================================================================================
#include "ti/devices/msp432e4/driverlib/driverlib.h"
uint8_t pui8ControlTable[1024]__attribute__(aligned (1024)));
#ifdef 调试
void __error__(char *pcFilename、uint32_t ui32Line)
{
}
#endif
int main (空)
{
//设置系统时钟
(空) SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);
//启用 uDMA
SysCtlPeripheralEnable (SYSCTL_Periph_UDMA);
SysCtlPeripheralSlepEnable (SYSCTL_Periph_UDMA);
uDMAEnable();
//启用 SSI2
SysCtlPeripheralEnable (SYSCTL_Periph_SSI2);
SysCtlPeripheralSlepEnable (SYSCTL_Periph_SSI2);
//设置参数 SSI2
SSIConfigSetExpClk (SSI2_base、120000000、3、0、25000000、 8);
//启用 DMA Rx 和 DMA Tx
SSIDMAEnable (SSI2_base、(UART_DMA_RX | UART_DMA_TX));
//启用 SSI2操作
SSIEnable (SSI2_base);
//通道分配
uDMAChannelAssign (UDMA_CH13_SSI2TX);
while (true){
//不执行任何操作
}
}
===================================================================================================================================
谢谢、
科基