打印
[STM32F7]

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

[复制链接]
968|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题,设置的adc转换时间大概0.66微秒,两个通道1.32微秒,但是使用DMA循环模式搬数据,得到的采样点变成了2ms 采集一次,为什么会这样,使用的是cubemx生成的Hal库,函数用的 HAL_ADC_DMA_Start

使用特权

评论回复
沙发
香水城| | 2020-12-7 19:21 | 只看该作者

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

这跟你代码有关。

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

使用特权

评论回复
评论
while(rookie) 2020-12-7 21:13 回复TA
我用adc采集一个50hz的正弦波,通过串口把搬过来的数据输出出来(没用中断),然后拿波形周期和点数比对的,一个周期20ms,我采样了10个点,所以两毫秒 
板凳
香水城| | 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 回复TA
嗯!很好! 
5
香水城| | 2020-12-8 19:14 | 只看该作者
while(rookie) 发表于 2020-12-8 15:55
搞定了,我用你的方法,只让他循环一次,发现频率都是正常了,我之前应该是串口打印速度和他d ...

用DMA搬,DMA将数据直接搬到UART_DR,直接打印。

使用特权

评论回复
6
xiaofei558008| | 2020-12-9 16:01 | 只看该作者
normal模式就可以应该,ADC选continue模式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝