然后通道和其他都默认即可

然后生成代码 在代码中定义两个数组 一个源数组,一个目标数组 类型都要是 uint32_t 的。

1
uint32_t srcbuf[5]={1,2,3,4,5},terbuf[5];

然后启动 DMA 搬运数据 ,数组需要强制类型转化为 uint32_t,最后一个参数是数组的长度乘上一个数据的长度。

1
HAL_DMA_Start(&hdma_memtomem_dma1_channel2, (uint32_t)srcbuf, (uint32_t)terbuf, 5*sizeof(uint32_t);

然后打印出来

1
2
3
4
for(int i=0;i<5;i++)
{
printf("%ld\n ",terbuf[i]);
}

结果

1
2
3
4
5
1
2
3
4
5

其他类型的数据也同理。