新手上路
- 积分
- 45
- 金钱
- 45
- 注册时间
- 2018-3-9
- 在线时间
- 28 小时
|
1金钱
我看别人的程序,LCD 用DMA直接传输数据到FSMC,并没有用到外设触发啊,直接调用 LCD_DMA_Enable, 并没有用到外设触发 ,因为只要使能了 DMA_Cmd(DMA2_Channel5, ENABLE); 就可以启动一次传输吧?
所以DMA不一定需要外设触发才能用。
那么看原子DMA例程中,用串口传输时,原子哥初始化这三条语句
MYDMA_Config(DMA1_Channel5,(u32)&USART1->DR,(u32)USART1_RX_BUF,USART1_LENTH_BUF);
MYDMA_Enable(DMA1_Channel5 , (u16)USART1_LENTH_BUF);
USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);
如果dma可以不通过外设触发,当初始化 MYDMA_Enable(DMA1_Channel5 , (u16)USART1_LENTH_BUF); 这条语句时,是不是就会启动一起dma传输,可不应该是通过 下面那句USART_DMACmd(USART1,USART_DMAReq_Rx,ENABLE);
进行外设触发传输吗,,那么为啥要初始化 MYDMA_Enable 这句话 ,让他平白无故的传输一次?
|
|