【发布时间】:2021-10-29 17:56:42
【问题描述】:
我正在尝试学习 DMA 的基础知识。我也在 YouTube 上观看了某些视频。
我有几个问题:
-
我们可以使用 DMA 设置/重置寄存器位吗?比如如果我想设置 GPIO_ODR 的第 4 位,我可以使用 DMA 吗?
-
DMA 遵循轮询方式还是中断方式?
-
如果我想设置和重置 GPIO(通用输入输出)外设的寄存器位,那么 DMA 的工作流程是什么?
会是: CPU->DMA->外设->寄存器
然后返回
寄存器->外设->DMA->CPU
这个工作流程正确吗?
请帮我解决这个问题。另外,如果你用简单的话解释会很棒,因为我对这个话题完全陌生。 谢谢!
-阿迪亚·乌巴汉德
【问题讨论】:
-
您观看的视频似乎在误导您。通过 DMA,您无法实现算术或逻辑操作,例如设置或重置位。 DMA 主要只是在内存或启用 DMA 的外设和内存之间将数据从源复制到目标。更好地搜索关于嵌入式控制的良好印刷或电子书籍,YouTube 很少是高质量的来源。