[STM32F7] STM32F767 多通道adc DMA循环模式传输 的频率和设置比,变慢好多

[复制链接]
 楼主| while(rookie) 发表于 2020-12-7 15:55 | 显示全部楼层 |阅读模式
如题,设置的adc转换时间大概0.66微秒,两个通道1.32微秒,但是使用DMA循环模式搬数据,得到的采样点变成了2ms 采集一次,为什么会这样,使用的是cubemx生成的Hal库,函数用的 HAL_ADC_DMA_Start
香水城 发表于 2020-12-7 19:21 | 显示全部楼层

你现在就是2个通道不停连续转换,DMA取数据嘛。

这跟你代码有关。

你2ms通过什么方法确定的?

评论

我用adc采集一个50hz的正弦波,通过串口把搬过来的数据输出出来(没用中断),然后拿波形周期和点数比对的,一个周期20ms,我采样了10个点,所以两毫秒  发表于 2020-12-7 21:13
香水城 发表于 2020-12-7 21:29 | 显示全部楼层
很有创意。

你干脆就让ADC转换11次,通过定时器记下时间看到10个间隔共多长时间。又不知你会不会
 楼主| while(rookie) 发表于 2020-12-8 15:55 | 显示全部楼层
香水城 发表于 2020-12-7 21:29
很有创意。

你干脆就让ADC转换11次,通过定时器记下时间看到10个间隔共多长时间。又不知你会不会 ...

搞定了,我用你的方法,只让他循环一次,发现频率都是正常了,我之前应该是串口打印速度和他dma不匹配,所以看起来像是 adc 采集变慢了。。。但是,我怎么能连续的获得这些高速数据呢,用中断控制 当数组满了再打印么?

评论

嗯!很好!  发表于 2020-12-8 19:12
香水城 发表于 2020-12-8 19:14 | 显示全部楼层
while(rookie) 发表于 2020-12-8 15:55
搞定了,我用你的方法,只让他循环一次,发现频率都是正常了,我之前应该是串口打印速度和他d ...

用DMA搬,DMA将数据直接搬到UART_DR,直接打印。
xiaofei558008 发表于 2020-12-9 16:01 | 显示全部楼层
normal模式就可以应该,ADC选continue模式
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部