ADC扫描值显示的问题,求教?
时间:10-02
整理:3721RD
点击:
ADC两个通道,分别接2V和0V,设置了扫描模式,想要显示ADC的获取值的平均值,为什么显示不出来?求教?
只是显示0 2 5 等积分数。
#include "stm32f10x.h"
#include "delay.h"
#include "lcd.h"
#include "adc.h"
#include "dac.h"
#include "dma.h"
u16 value[50][2]={0};
u16 average[2];
void Get_Average(void)
{
int sum=0,i,j;
for(j=0;j<2;j++)
{
for(i=0;i<50;i++)
{
sum+=value[j];
}
average[j]=sum/50;
sum=0;
}
}
int main(void)
{
u16 adcx;
float temp;
u8 i,j;
delay_init();
LCD_Init();
MY_ADC_Init();
MY_DAC_Init();
LCD_Screen();
MY_DMA_Init(DMA1_Channel1,(u32)&ADC1->DR,(u32)&value,100);
ADC_SoftwareStartConvCmd(ADC1,ENABLE);
Dac1_Set_Vol(2000);
while(1)
{
Get_Average();
for(i=0;i<2;i++)
{
LCD_ShowxNum(126,170,average,1,16,0);
delay_ms(1000);
}
}
}
只是显示0 2 5 等积分数。
#include "stm32f10x.h"
#include "delay.h"
#include "lcd.h"
#include "adc.h"
#include "dac.h"
#include "dma.h"
u16 value[50][2]={0};
u16 average[2];
void Get_Average(void)
{
int sum=0,i,j;
for(j=0;j<2;j++)
{
for(i=0;i<50;i++)
{
sum+=value[j];
}
average[j]=sum/50;
sum=0;
}
}
int main(void)
{
u16 adcx;
float temp;
u8 i,j;
delay_init();
LCD_Init();
MY_ADC_Init();
MY_DAC_Init();
LCD_Screen();
MY_DMA_Init(DMA1_Channel1,(u32)&ADC1->DR,(u32)&value,100);
ADC_SoftwareStartConvCmd(ADC1,ENABLE);
Dac1_Set_Vol(2000);
while(1)
{
Get_Average();
for(i=0;i<2;i++)
{
LCD_ShowxNum(126,170,average,1,16,0);
delay_ms(1000);
}
}
}
如果这是代码直接粘贴的话,那么sum+=value[j]; 这一句明显有问题value是二维数组....一堆指针加起来是什么鬼?
不是,打错了是value[j]