最近在做一个AD的项目,AD数据线与STM32中GPIOD pin0~pin15相连,想通过DMA将GPIOD输入的数据存放到SRAM中。因为AD是在不断的进行数据转换,所以DMA的模式只能是循环模式,看STM32F4 reference manual说如果是循环模式的话,就不能是MemoryToMemory,但是PeripheralToMemory需要DMA请求源,那么怎么使用合适的请求源呢?希望大家能够给我一些建议!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
问你一下,你是怎么根据时序图来控制DMA的请求的,我纠结的地方在于:我需要拉低CS、RD,然后GPIOD->IDR才会有CH1转换的数据;然后拉高RD,再拉低RD,GPIOD->IDR才会有CH2转换的数据。。。。。。,这样的话,我应该什么时候来进行DMA的请求呢?是每得到一个CHX的数据,就进行一次DMA请求吗?
TIM1_CHx產生RD 串到 TIMx_CH產生CS 這裡你就知道ARR=你發pulse的週期 CCRx=8
如果可以發pulse都用TIM1_CHx CCRx設小一點就好...
在CCRx=8的時後設定GPIO_RD復用功能 其它時間 output功能 設high 然後就XXXX
你RD不一定CCRx要設ARR的一半 你可以設一個確定DATA已經更新的時間 然後enable DMA2的TIM1_Chx
如果你那幾隻腳都沒法改成TIM_CH 那你就只能....自己實驗抓時間 ...TIM感覺還是能用 反正RD CS也是你送的
谢谢civic7366,因为考虑到使用DMA结合我现在的连接电路来实现我想要的功能确实比较麻烦,我先没有使用DMA实现了AD采样,采样频率现在为25K,采样的数据还算比较稳定,当下降到20K时,数据波动有点大,估计后面可能还会有些问题,总之谢谢了
一周热门 更多>