打印
[ZLG-ARM]

stm32l151c8t6测温度问题

[复制链接]
1876|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MOn51|  楼主 | 2013-7-14 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32l151c8t6内部测温得到的值是:ADC出来的数据是:610,通过计算程序算出的温度是-1;实际温度是30度。
程序不做任何修改烧入STM32L151RB中,ADC出来的数据是:680.计算出来的温度是:29.8.与实践相符。正确。
程序不做修改烧入STM32L152RB中:ADC出来的数据是:685.计算的温度是30.1.也正确。
计算用的参数是芯片内部的标定数据。
是在解释不通了,有谁可以帮忙?
程序如下:
typedef struct
{
     uint16_t VREF;
     uint16_t TS_CAL_COLD;
     uint16_t reserved;
     uint16_t TS_CAL_HOT;
} CALIB_TypeDef;

#define FACTORY_CALIB_BASE        ((uint32_t)0x1FF80078)    /*!< Calibration Data Bytes base address */
#define FACTORY_CALIB_DATA        ((CALIB_TypeDef *) FACTORY_CALIB_BASE)

//****************************************************
//温度处理
//****************************************************
float Get_Temper(unsigned int Temper){
         float tmp;
         CALIB_TypeDef calibdata;
         
         calibdata = *FACTORY_CALIB_DATA;
   /* Calculate temperature in 癈 from Interquartile mean */
         tmp  =(float) Temper-calibdata.TS_CAL_COLD ;        
   tmp *=(110 - 25);                     
   tmp /=(float)(calibdata.TS_CAL_HOT -calibdata.TS_CAL_COLD);
   tmp +=25;
   return tmp;         
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

472

帖子

7

粉丝