你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
放开她让我来

放开她让我来

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
3 回答

有没有大神做过STM32f030内部温度传感器,怎么读和计算呢

未设置标签
anywill anywill 回答时间: 2017-11-22 16:39

/* * Reading built-in temperature sensor of STM32F103RB chip (on a NUCLEO-F103RB board) */ #include "mbed.h" /* * STM32F103x data-sheet: * 5.3.19 Temperature sensor characteristics * Table 50. TS characteristics, Page 80 */ const float         AVG_SLOPE   = 4.3E-03;      // slope (gradient) of temperature line function  [V/°C] const float         V25         = 1.43;         // sensor's voltage at 25°C [V] const float         ADC_TO_VOLT = 3.3 / 4096;   // conversion coefficient of digital value to voltage [V]                                                 // when using 3.3V ref. voltage at 12-bit resolution (2^12 = 4096) Serial              pc(USBTX, USBRX); DigitalOut          led(LED1); ADC_HandleTypeDef   hadc1;                      // ADC handle uint16_t            adcValue;                   // digital value of sensor float               vSense;                     // sensor's output voltage [V] float               temp;                       // sensor's temperature [°C] /* ADC1 init function */ void MX_ADC1_Init(void) {     ADC_ChannelConfTypeDef  sConfig;     /**Common config         */     hadc1.Instance = ADC1;     hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;     hadc1.Init.ContinuousConvMode = DISABLE;     hadc1.Init.DiscontinuousConvMode = DISABLE;     hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;     hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;     hadc1.Init.NbrOfConversion = 1;     HAL_ADC_Init(&hadc1);     /**Configure Regular Channel         */     sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;     sConfig.Rank = 1;     sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;     HAL_ADC_ConfigChannel(&hadc1, &sConfig); } int main() {     MX_ADC1_Init();                                                 // initialize AD convertor     while(HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK);           // calibrate AD convertor     while(1) {                 HAL_ADC_Start(&hadc1);                                      // start analog to digital conversion         while(HAL_ADC_PollForConversion(&hadc1, 1000000) != HAL_OK);// wait for completing the conversion         adcValue = HAL_ADC_GetValue(&hadc1);                        // read sensor's digital value         vSense = adcValue * ADC_TO_VOLT;                            // convert sensor's digital value to voltage [V]         /*          * STM32F103xx Reference Manual:          * 11.10 Temperature sensor          * Reading the temperature, Page 235          * Temperature (in °C) = {(V25 - Vsense) / Avg_Slope} + 25          */         temp = (V25 - vSense) / AVG_SLOPE + 25.0f;                  // convert sensor's output voltage to temperature [°C]         pc.printf("temp = %3.1f *C\n", temp, 176);                  // display chip's temperature [°C]         led = !led;         wait_ms(1000);    } }

赞0
放开她让我来 放开她让我来


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16