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.

[参考译文] MSP432E411Y-BGAEVM:调用 uDMAChannelAssign 时 DMATXRIS 置1的现象

Guru**** 2538960 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/971570/msp432e411y-bgaevm-the-phenomenon-that-dmatxris-is-set-when-udmachannelassign-is-called

器件型号:MSP432E411Y-BGAEVM

您好!

我运行了下面的示例代码。

调用 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){

                      //不执行任何操作

               }

===================================================================================================================================

谢谢、

科基