wenyangzeng 发表于 2019-5-15 09:52:19

本帖最后由 wenyangzeng 于 2019-5-15 10:34 编辑

zzzzzzydb7b11 发表于 2019-5-14 22:29
您好:1.主函数部分我已经把ADC转换标志位去除了。改成:
                     while(1)
      {

在楼主的ADC_DMA_Configuration()函数中:
DMA传送数据的基地址是ADC1->DR,目标地址是adc_data[],
按理一次转换4个通道,DMA传输:DMA_Instructure.DMA_BufferSize就应该是4,楼主设置为768,这样一次DMA传输就有192组×4通道的ADC转换数据了。楼主如果要一次转换这么多,adc_data[]数组就要设置足够的缓冲区,读取的通道数据也要认真区分了。

a981223559 发表于 2019-5-15 09:59:04

zzzzzzydb7b11 发表于 2019-5-15 08:43
原来的程序中有一处错误:DMA_InitStructure.DMA_MemoryInc=DMA_PeripheralInc_Enable;将此语句应改为
        DMA ...

我的那个数值是3通道,采集256次,3*256=768。这个数值等于n*m,n为采样通道个数,m为采样次数

edmundlee 发表于 2019-5-15 11:47:44

DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&adc_data;
把这个&删掉

zzzzzzydb7b11 发表于 2019-5-15 12:53:26

本帖最后由 zzzzzzydb7b11 于 2019-5-15 12:54 编辑

拜托大家帮帮忙,这是最新的程序和效果图,四个都有数据,而且一直在波动,但是数据都不对,为什么呢?

a981223559 发表于 2019-5-16 09:57:00

本帖最后由 a981223559 于 2019-5-16 09:58 编辑

zzzzzzydb7b11 发表于 2019-5-15 12:53
拜托大家帮帮忙,这是最新的程序和效果图,四个都有数据,而且一直在波动,但是数据都不对,为什么呢?
...
你采10个数后没平均滤波,而且你计算电压的公式错了

yllqabz 发表于 2019-5-17 16:47:24

采样有点波动很正常,比如100,101,102,98,97这样都没有问题,你所谓波动是怎么波动法?数据不对又是怎样不对,是与实际差太远还是说位置不对,还是怎么回事?楼主应该描述清楚一点
页: 1 [2]
查看完整版本: stm32 多路采样求助