请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSPM0G1106 工具/软件:
我想使用 DMA 在上升沿从 GPIO 读取端口 A。
为此、我按如下方式配置了 DMA:
uint32_t testSource = 1553;
/*配置 DMA 源、目标和大小*/
DL_DMA_setSrcAddr (DMA、DMA_CH0_RX_CHAN_ID、
(uint32_t)&GPIOA->DIN31_0);// DIN31_0 = DIN 引脚 31 bis 引脚 0
// DL_DMA_setSrcAddr (DMA、DMA_CH0_RX_CHAN_ID、 (uint32_t)&testSource);
//// DIN31_0 = DIN 引脚 31 bis 引脚 0
DL_DMA_setDestAddr (DMA、DMA_CH0_RX_CHAN_ID、(uint32_t)&gDesRxDmaData[0]);
DL_DMA_setTransferSize (DMA、DMA_CH0_RX_CHN_ID、
sizeof (gDesRxDmaData)/ sizeof (uint32_t));
DL_DMA_enableChannel (DMA、DMA_CH0_RX_CHAN_ID);
TEST = DL_DMA_getSrcAddr (DMA、DMA_CH0_RX_CHAN_ID);
__ BKPT (0);
但是、使用此代码时、我始终读回值 0。 尽管某些引脚始终为高电平(并且在使用调试器读回寄存器时也设置正确)。
如果将源 addr 设置为测试变量、则也会使用 DMA 正确读取变量的值。
因此、DMA 初始化实际上是有效的、但 GPIOA->DIN31_0 上的源地址有问题。
此地址有问题吗?
如果将源 addr 设置为测试变量、则也会使用 DMA 正确读取变量的值。
因此、DMA 初始化实际上是有效的、但 GPIOA->DIN31_0 上的源地址有问题。
此地址有问题吗?