zoukankan      html  css  js  c++  java
  • stm32 内部温度传感器的配置

      STM32的内部温度传感器和ADCx—IN16输入通道相连接。且温度传感器推荐采样时间为17.1us,支持的温度范围为:-40~125度,精度比较差,± 5℃左右。

      计算温度值:T(℃) ={V25-Vsense/Avg_Slope}+25

      V25=Vsense 25 度时的数值(典型值为: 1.43)。

      Avg_Slope=温度与 Vsense 曲线的平均斜率(单位为 mv/℃或 uv/℃)(典型值为4.3Mv/℃)。 
      

     1 ADC_InitTypeDef ADC_InitStructure; 
     2     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1    , ENABLE );      //使能GPIOA,ADC1通道时钟
     3   
     4     RCC_ADCCLKConfig(RCC_PCLK2_Div6);   //分频因子6时钟为72M/6=12MHz
     5 
     6     ADC_DeInit(ADC1);  //将外设 ADC1 的全部寄存器重设为缺省值
     7  
     8     ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;    //ADC工作模式:ADC1和ADC2工作在独立模式
     9     ADC_InitStructure.ADC_ScanConvMode = DISABLE;    //模数转换工作在单通道模式
    10     ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;    //模数转换工作在单次转换模式
    11     ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;    //转换由软件而不是外部触发启动
    12     ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;    //ADC数据右对齐
    13     ADC_InitStructure.ADC_NbrOfChannel = 1;    //顺序进行规则转换的ADC通道的数目
    14     ADC_Init(ADC1, &ADC_InitStructure);    //根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器
    15 
    16     ADC_TempSensorVrefintCmd(ENABLE); //开启内部温度传感器
    17     
    18  
    19     ADC_Cmd(ADC1, ENABLE);    //使能指定的ADC1
    20 
    21     ADC_ResetCalibration(ADC1);    //重置指定的ADC1的复位寄存器
    22 
    23     while(ADC_GetResetCalibrationStatus(ADC1));    //获取ADC1重置校准寄存器的状态,设置状态则等待
    24 
    25     ADC_StartCalibration(ADC1);     //AD校准
    26 
    27     while(ADC_GetCalibrationStatus(ADC1));        //获取指定ADC1的校准程序,设置状态则等待

     

    知识来源:STM32F1 开发指南(库函数版)

  • 相关阅读:
    C# 局部函数与事件
    PHP curl_multi_strerror函数
    PHP curl_multi_setopt函数
    PHP curl_multi_select函数
    PHP curl_multi_remove_handle函数
    PHP curl_multi_init函数
    用户&权限
    HEOI2019 游记——240秒处的起死回生
    WPF 判断调用方法堆栈
    WPF 判断调用方法堆栈
  • 原文地址:https://www.cnblogs.com/zengsf/p/7216398.html
Copyright © 2011-2022 走看看