1.5 例程
int main (void)
{
float Vtemp,Temp,VDD;
int32_t ADCbg;
int32_t ADCtemp;
float Tbg =1.118
ADC_ConfigType sADC_Config = {0};
sysinit()
UART_WaitTxComplete(TERM_PORT);
sADC_Config.u8ClockDiv = ADC_ADIV_DIVIDE_8; /* 初始化 ADC 模块 */
sADC_Config.u8ClockSource = CLOCK_SOURCE_BUS_CLOCK;
sADC_Config.u8Mode = ADC_MODE_10BIT;
sADC_Config.sSetting.bLongSampleEn=1;
ADC_Init( ADC, &sADC_Config);
PMC_EnableBandgap(PMC); //使能带隙缓冲区
ADCbg=ADC_PollRead(ADC,ADC_CHANNEL_AD23_BANDGAP);//读取带隙通道 ADC 值
ADCtemp=ADC_PollRead(ADC,ADC_CHANNEL_AD22_TEMPSENSOR);//读取温度传感器通道
ADC 值
VDD=(float)(1023*1.111/ADCbg);//计算当前电压值
Vtemp=(float)(ADCtemp*VDD/1023);//计算温度传感器电压值
//Vtemp=(float)(ADCtemp*3.3/1023);
/*计算当前温度值*/
if (Vtemp>1.419)
{
Temp=25-((Vtemp-1.419)/0.0034);
} e
lse
{
Temp =25-((Vtemp-1.419)/0.00365);
} p
rintf("Vbg=%d,VDD=%f\n",ADCbg,VDD);
printf ("ADCtemp=%d,Vtemp=%f,Temp=%f\n",ADCtemp,Vtemp,Temp);
}
|