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);
- }
|