请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR6047 我将使用 DMA 通过 UART3发送一些数据。 DMA 传输正在工作、数据正在 UART 上输出。 问题是调用"UART_Send_Bytes"后、程序不会继续执行。 使用仿真器、它锁定了最后一条指令。 单步执行仿真器保持在最后一条指令。 以下代码:
void UART_Send_bytes (unsigned char *地址、unsigned char 大小)
{
//清除中断标志-由 Steve 于2018年6月21日添加
DMA3CTL &=~DMAIFG;
//源地址
__data20_write_long ((unsigned long)&DMA3SA、(unsigned long)地址);
//要存储的数据数
DMA3SZ =大小;
DMA3CTL |= DMAEN + DMAIE;//启用 DMA。
//进行虚假边沿触发以激活 DMA
UCA3IFG &=~UCTXIFG;
UCA3IFG |= UCTXIFG;
LPM0;//如果我删除这个,DMA 不成功。
DMA3CTL &=~(DMAEN + DMAIE);//禁用 DMA。 仿真器卡在这里。
}