DMA与IO的传输问题

2019-07-21 08:12发布

各位大神,怎么用DMA实现寄存器到IO口的传输啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
正点原子
1楼-- · 2019-07-21 22:36
 精彩回答 2  元偷偷看……
须佐之男
2楼-- · 2019-07-21 23:11
回复【7楼】正点原子:
---------------------------------
软件触发哪一位呢?
Phoenix_2011
3楼-- · 2019-07-21 23:26
 回复【9楼】 正点原子 :
---------------------------------
1.映射问题
MYDMA_Config(DMA1_Channel5,(u32)&GPIOC->IDR,(u32)OV7670_BUF[0],640);

GPIOC->CRL=0X88888888;
GPIOC->ODR|=0x00ff;

这个意思是DMA1_Channel5直接能映射到GPIOC的0-7位吗?
如果此时Channel5传输的数据为0xAA
那么GPIOC的0-7位电平分别为1010 1010吗?


2.触发问题
究竟是如何触发了Channel5的传输 ?


TIM4_Excat_Init();//TIM4,CH3,输入捕获
这句的意思是利用TIM4_CH3的输入捕获触发了Channel5吗?
正点原子
4楼-- · 2019-07-22 04:09
存储器到存储器模式,如果是软件触发,不用选通道.
但是我这里选择了触发源,也就是定时器4通道3来触发DMA传输.
所以就是通道5了.

也就是定时器4,外部触发有一个脉冲,DMA就会执行一次读取GPIOC->IDR,并存储到数组里面.
cttx
5楼-- · 2019-07-22 08:48
回复【11楼】正点原子:
---------------------------------
原子哥,DMA从GPIO运送数据到SRAM里速度如何,和CPU单纯处理是不是慢点,还有DMA的速度和触发源有关么
正点原子
6楼-- · 2019-07-22 12:09
 精彩回答 2  元偷偷看……

一周热门 更多>