主函数
int main()
{
u16 value;
u8 i,j,dat[6];
float ad;
dma_init(); //DMA 初始化
TFT_Init(); //TFT 彩屏初始化
LED_Init(); //端口初始化
printf_init(); //printf 初始化
TFT_ClearScreen(BLACK); //清屏
GUI_Show12ASCII(10,10,"This is a ADC1-DMA1 Check!",YELLOW,BLACK);
GUI_Show12ASCII(10,27,"PA1 is AD Input!",YELLOW,BLACK);
GUI_Show12ASCII(10,100,"The AD Volage is:",YELLOW,BLACK);
while(1)
{
value=0;
for(i=0;i<10;i++)//读取 10 次的 AD 数值取其平均数较为准确
{
value=value+adc_data[0];
}
delay_ms(500);
value=value/10;
ad=value*3.3/4095;
value=(u16)(ad*100);
dat[0]=value/100+0x30;
dat[1]='.';
dat[2]=value%100/10+0x30;
dat[3]=value%100%10+0x30;
dat[4]='V';
dat[5]='\0';
GUI_Show12ASCII(160,100,dat,YELLOW,BLACK);
if(j>1)
{
j=0;
GPIO_SetBits(GPIOC,GPIO_Pin_0);
}
else
{
j++;
GPIO_ResetBits(GPIOC,GPIO_Pin_0);
}
}
}
|