STM3210X单片机DMA配置问题

phangbob 2017-07-14 03:10:33
以数据源和数据目标 为数据发送方式,那么DMA数据发送方式以下几种:
Memory-to-Memory 内存到内存
M-to-peripheral 内存到外设
外设到内存
外设到外设;

除了 “内存到内存” ,其他方式下的外设都会指定DMA请求通道,那么 “内存到内存” 这种方式下的 通道该如何选择??

问题提出所在代码:
(DMA初始化函数)
void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct);

是因为请求通道都是为外设请求DMA帮忙才设的吗?如果是那样,那请有具体的说明吗?datasheet或者操作手册,具体原因,具体原因,具体原因!!谢谢。

...全文
283 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
侦探蜡笔小新 2017-07-31
  • 打赏
  • 举报
回复
引用 7 楼 phangbob 的回复:
[quote=引用 4 楼 g62r83t27 的回复:] memory to memory 模式使能FIFO就行了,不需要指定具体哪个FIFO 图1 ,指示只要BIT0 EN置位 图2 寄存器EN位置
嗯,谢谢,您的回答让我有新的想法,话说datasheet没有 DMA controller的图?请问是在哪里的??[/quote] datasheet 是给硬件设计人员看的,不会告诉你内部模块控制方法的,你做软件需要看的是reference manual, user guide之类的
phangbob 2017-07-29
  • 打赏
  • 举报
回复
引用 4 楼 g62r83t27 的回复:
memory to memory 模式使能FIFO就行了,不需要指定具体哪个FIFO 图1 ,指示只要BIT0 EN置位 图2 寄存器EN位置
嗯,谢谢,您的回答让我有新的想法,话说datasheet没有 DMA controller的图?请问是在哪里的??
phangbob 2017-07-29
  • 打赏
  • 举报
回复
引用 2 楼 u014041586 的回复:
内存到内存是所有通道都支持的,外设跟内存的相互传输是有固定通道的,具体要看手册中关于DMA通道这块的说明,有个表格可以参考
是的,没错,而且手册有说,M2M2模式不需要请求,但我想知道的是对于指定通道没有具体说明,还是说?在M2M模式下,通道指定只是 初始化结构体 的固定模式,具体是寄存器中设定M2M的使能位其实就可以实现??哈哈,乱想的。 by the way, thanks a lot~~
phangbob 2017-07-29
  • 打赏
  • 举报
回复
引用 1 楼 fuchouzhe 的回复:
内存到内存的传输当然也需要指定通道、源地址、目的地址,传输大小 所有dma通道都支持,但设备和dma通道具有一定关系,即某些设备只能使用固定的DMA通道,不是任意一个DMA都能对所有设备进行访问
谢谢您的回答,是的,我知道您说的,我只是想找到具体的说明,因为每次遇到DMA M2M模式传送都只是知道怎样做,但不了解为什么,哈哈。
侦探蜡笔小新 2017-07-24
  • 打赏
  • 举报
回复
memory to memory 模式使能FIFO就行了,不需要指定具体哪个FIFO
图1 ,指示只要BIT0 EN置位

图2 寄存器EN位置
katie3000 2017-07-24
  • 打赏
  • 举报
回复
查看ST的官方例程,DMA部分,很详细。
ObrienHuang 2017-07-20
  • 打赏
  • 举报
回复
内存到内存是所有通道都支持的,外设跟内存的相互传输是有固定通道的,具体要看手册中关于DMA通道这块的说明,有个表格可以参考
fuchouzhe 2017-07-16
  • 打赏
  • 举报
回复
内存到内存的传输当然也需要指定通道、源地址、目的地址,传输大小 所有dma通道都支持,但设备和dma通道具有一定关系,即某些设备只能使用固定的DMA通道,不是任意一个DMA都能对所有设备进行访问

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧