自己修改了下,原子哥的程序 ADC1 使用的是PC0,PC1,PC2,PC3端口,但是,我链接的3.3V电压,PC0,PC2,PC3都是屏显示都是5V,奇怪,难道和外电路有关?
这个是截图。
这是主程序。
//显示提示信息
POINT_COLOR=BLUE;//设置字体为蓝 {MOD}
LCD_ShowString(60,130,200,16,16,"ADC_CH0_VAL:");
LCD_ShowString(60,150,200,16,16,"ADC_CH0_VOL:0.000V");
LCD_ShowString(60,170,200,16,16,"ADC_CH1_VAL:");
LCD_ShowString(60,190,200,16,16,"ADC_CH1_VOL:0.000V");
LCD_ShowString(60,210,200,16,16,"ADC_CH2_VAL:");
LCD_ShowString(60,230,200,16,16,"ADC_CH2_VOL:0.000V");
LCD_ShowString(60,250,200,16,16,"ADC_CH3_VAL:");
LCD_ShowString(60,270,200,16,16,"ADC_CH3_VOL:0.000V");
while(1)
{
static u8 i=0;
switch(i)
{
case 0:
adcx[0]=Get_Adc_Average(ADC_Channel_10,10);
break;
case 1:
adcx[1]=Get_Adc_Average(ADC_Channel_11,10);
break;
case 2:
adcx[2]=Get_Adc_Average(ADC_Channel_12,10);
break;
case 3:
adcx[3]=Get_Adc_Average(ADC_Channel_13,10);
break;
}
//adcx=Get_Adc_Average(ADC_Channel_1,10);
LCD_ShowxNum(156,130+i*40,adcx
,4,16,0);//显示ADC的值
temp=(float)adcx*(3.3/4096);
adcx[1]=temp;
LCD_ShowxNum(156,150+i*40,adcx,1,16,0);//显示电压值
temp-=adcx;
temp*=1000;
LCD_ShowxNum(172,150+i*40,temp,3,16,0X80);
LED0=!LED0;
delay_ms(200);
if(i>=3)
{
i=0;
}
else
{
i++;
}
}
}
temp=(float)adcx*(3.3/4096);
adcx[1]=temp;
LCD_ShowxNum(156,150+i*40,adcx,1,16,0);//显示电压值
temp-=adcx;
temp*=1000;
LCD_ShowxNum(172,150+i*40,temp,3,16,0X80);
LED0=!LED0;
已经搞定 adcx[i]=temp; 将这里的 1 修改为 i 就可以了
一周热门 更多>