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);
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不是,打错了是value[j]
一周热门 更多>