流言飞雨 发表于 2016-6-19 16:57:34

memory0BaseAddr = (uint32_t)&b;
改为
memory0BaseAddr = (uint32_t)b;
或者
memory0BaseAddr = (uint32_t)&b;
原因:
猜测,&b是二维指针,DMA地址递增时,使用二维指针寻址,导致b之外的数组元素被略过,而将数据传送到了数组b后的位置。
猜测,楼主期望的第n(从0计)个数据应该在b+数组b元素个数*n的地址位置

valentinaxue 发表于 2019-10-11 22:04:09

借楼问个问题
STM32F4在使用SPI DMA 进行收发的时候存储器数据长度和外设数据长度都是16位 使能存储器指针递增
按照数据手册中所说理应每次传输指针递增两个字节也就是刚好一个半字
但实际中递增了4个字节
单独写一个存储器到存储器 16位数据传输指针的递增就是正确的怎样设置??
页: 1 [2]
查看完整版本: 如何让STM32F4的DMA传输目的地址递增问题