关于ADC+DMA中断的问题,想请教一下各位。

2019-07-21 04:18发布

本帖最后由 BUGMAN 于 2019-3-14 19:42 编辑

时序图 时序图
ICG为25HZ的PWM信号,下降沿触发产生信号A,信号A为500K的PWM脉冲,脉冲持续3700个后,变为低电平。

想要这样的脉冲是想要用来触发AD转换,然后后面多出来的时间用来USB传输数据到上位机。
目前我设想的方案是,ICG信号(TIM3产生)通过主从模式让其下降沿使能启动A信号(TIM4产生),A信号上升沿触发启动AD转换,AD转换再触发DMA将数据转移到前面设好的数组里,采集3700个数据后进入中断,关闭TIM4同时USB_USART_SendData()函数传输数据。在SH下一个下降沿到来前完成中断,SH下一个下降沿到来时又会使能TIM4。

目前的问题就是不知道如何在采集3700个数字后进入中断。
之前我以为将DMA设置里的DMA_BufferSize设为3700,在将DMA设为循环模式,AD转换一次传一个数据,传3700个数据之后就能进入传输完成中断了。结果发现并不是我预料的那样。


DMA与ADC设置代码 DMA与ADC设置代码





求各位指点一下,真的感谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
edmund1234
1楼-- · 2019-07-23 10:13
本帖最后由 nashui_sx 于 2019-3-15 22:20 编辑
edmund1234 发表于 2019-3-15 21:12
踩着你尾巴了? 呵呵
回你帖的时候没打算让你多学点技术, 就想让你先学好些汉语。

你踩着自己的了吧,
你以为知道用定时器主从模式 还知道用定时器触发adc并dma采集会不知道pwm波用adc采集只有0 1没意义,你还是再看看帖子,并谦虚点好好学习吧,省的尾巴被自己踩掉了还要我给你回炉,或者直接给楼主做一个传上来让大家欣赏学习学习
nashui_sx
2楼-- · 2019-07-23 11:28
nashui_sx 发表于 2019-3-15 22:16
你踩着自己的了吧,
你以为知道用定时器主从模式 还知道用定时器触发adc并dma采集会不知道pwm波用adc采 ...

。。哥们你是对的,我就是想要采集波形的
BUGMAN
3楼-- · 2019-07-23 14:59
 精彩回答 2  元偷偷看……
nashui_sx
4楼-- · 2019-07-23 17:20
本帖最后由 nashui_sx 于 2019-3-16 12:25 编辑
BUGMAN 发表于 2019-3-16 11:15
终于搞出来啦,我的思路是可以的,发现问题出在PWM波触发ADC的那步,我一开始设置PWM波的占空比为50%,我 ...

为了追求精度,那你现在可以用ad采集一个500k的方波了,假如你的采样频率是500k  ad值要么全是4096(高)  要么全是0(低)    假如是高低电平的波动值证明你的采样频率不是固定的,要么上位机用时间和采样点差值,要么检查代码保证500k的采样频率
nashui_sx
5楼-- · 2019-07-23 21:56
nashui_sx 发表于 2019-3-16 12:22
为了追求精度,那你现在可以用ad采集一个500k的方波了,假如你的采样频率是500k  ad值要么全是4096(高) ...

好的,我去试试
BUGMAN
6楼-- · 2019-07-23 22:56
BUGMAN 发表于 2019-3-16 13:50
好的,我去试试

你知道原理就知道为啥这么能检测了也就好检测了,不过精度要求不高,不检测也可以

一周热门 更多>