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

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

[复制链接]
放开她让我来 提问时间:2017-10-11 15:08 /
   我写的这个初始化对吗??

    ADC_InitTypeDef ADC_InitStuctrue;  


    ADC_DeInit(ADC1);
    ADC_InitStuctrue.ADC_Resolution=ADC_Resolution_12b;//12位精度  
    ADC_InitStuctrue.ADC_ContinuousConvMode=DISABLE;//单次ADC  
    ADC_InitStuctrue.ADC_ExternalTrigConvEdge=ADC_ExternalTrigConvEdge_None;  
    ADC_InitStuctrue.ADC_DataAlign=ADC_DataAlign_Right;//数据右对齐  
    ADC_InitStuctrue.ADC_ScanDirection=ADC_ScanDirection_Backward;//数据覆盖  
    ADC_Init(ADC1,&ADC_InitStuctrue);   
    ADC_Cmd(ADC1, DISABLE);

    ADC_ChannelConfig(ADC1,ADC_Channel_16,ADC_SampleTime_239_5Cycles);  
    ADC_TempSensorCmd(ENABLE);  
    ADC_GetCalibrationFactor(ADC1);  
    ADC_Cmd(ADC1,ENABLE);
    while(ADC_GetFlagStatus(ADC1,ADC_FLAG_ADEN)==RESET);      
    ADC_StartOfConversion(ADC1);
    while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)==RESET);

收藏 评论3 发布时间:2017-10-11 15:08

举报

3个回答
MrJiu 回答时间:2017-10-12 09:16:00
首先,现在已经开始使用hal库了,标准库已经不支持了官方更新了,其次,看一下参考资料。。。。
areyouok 回答时间:2017-11-21 14:22:35
内部传感器测温没试过,数据手册上有这个功能
anywill 回答时间:2017-11-22 16:39:46
/*
* 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);
   }
}
微信图片_20171122163836.jpg

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版