NTC热敏电阻计算温度之C代码
- 代码已经验证 温度误差可以接受
- 验证
代码已经验证 温度误差可以接受
下面展示部分 代码
。
///< ADC 单次采集 Ntc
uint32_t Adc_ReadNtcVal(void)
{uint32_t u32AdcRestult;///< ADC 采样通道配置Adc_CfgSglChannel(AdcExInputCH21); /////< 启动单次转换采样Adc_SGL_Start(); while(TRUE != Adc_GetIrqStatus(AdcMskIrqSgl));//ADC 中断/采样完成状态清除Adc_ClrIrqStatus(AdcMskIrqSgl ); u32AdcRestult = Adc_GetSglResult(); ///< 获取采样值return u32AdcRestult;
}
//电压换算成温度 热敏电阻在下
float Temp_data(void)
{float temp=0;float Rt=0;float Rp=10000;float T2=273.15+25;float Bx=3950;float Ka=273.15;float vol=0;vol=(float)(Adc_ReadNtcVal())*(3.3/4096);Rt=(3.3-vol)*10000/vol;temp=1/(1/T2+log(Rt/Rp)/Bx)-Ka+0.5;return temp;
}//电压换算成温度 热敏电阻在上
uint8_t Temp_data(void)
{float temp=0;float Rt=0;float Rp=10000;float T2=273.15+25;float Bx=3950;float Ka=273.15;float vol=0;vol=(float)(4096-NTC_Adc_Value)*(float)(3.3/4096);Rt=(3.3-vol)*10000/vol;temp=1/(1/T2+log(Rt/Rp)/Bx)-Ka+0.5;return (uint8_t)temp;
}
验证
常温下电脑旁边测试
恒温箱测试