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[]数组就要设置足够的缓冲区,读取的通道数据也要认真区分了。 zzzzzzydb7b11 发表于 2019-5-15 08:43
原来的程序中有一处错误:DMA_InitStructure.DMA_MemoryInc=DMA_PeripheralInc_Enable;将此语句应改为
DMA ...
我的那个数值是3通道,采集256次,3*256=768。这个数值等于n*m,n为采样通道个数,m为采样次数 DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&adc_data;
把这个&删掉 本帖最后由 zzzzzzydb7b11 于 2019-5-15 12:54 编辑
拜托大家帮帮忙,这是最新的程序和效果图,四个都有数据,而且一直在波动,但是数据都不对,为什么呢?
本帖最后由 a981223559 于 2019-5-16 09:58 编辑
zzzzzzydb7b11 发表于 2019-5-15 12:53
拜托大家帮帮忙,这是最新的程序和效果图,四个都有数据,而且一直在波动,但是数据都不对,为什么呢?
...
你采10个数后没平均滤波,而且你计算电压的公式错了 采样有点波动很正常,比如100,101,102,98,97这样都没有问题,你所谓波动是怎么波动法?数据不对又是怎样不对,是与实际差太远还是说位置不对,还是怎么回事?楼主应该描述清楚一点
页:
1
[2]