基于STM32F412的LL库的ADC转换 
狂欢三:发帖兑STM32板卡 
11月份大转盘有幸抽到1等奖,揽获STM32F412nucleo开发板1块。谢谢ST社区, 
  
于是决定使用它来体验一下LL模式的ADC转换。 
  
ADC配置 
  
LL配置 
STM32F412的LL-ADC配置成循环模式转换内部温度传感器,并转换成温度值。 
主函数 
include "main.h"
#include "adc.h"
#define INTERNAL_TEMPSENSOR_AVGSLOPE   ((int32_t) 2500)  
#define INTERNAL_TEMPSENSOR_V25        ((int32_t)  760) 
#define INTERNAL_TEMPSENSOR_V25_TEMP   ((int32_t)   25)
#define INTERNAL_TEMPSENSOR_V25_VREF   ((int32_t) 3300)
#define VDDA_APPLI                       ((uint32_t)3300)
__IO uint16_t uhADCxConvertedData;
__IO uint16_t hADCxConvertedData_Temperature_DegreeCelsius = 0; 
int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_ADC1_Init();
  LL_ADC_Enable(ADC1);
  while (1)
  {
    LL_ADC_REG_StartConversionSWStart(ADC1);
      while (LL_ADC_IsActiveFlag_EOCS(ADC1) == 0)
        {}
     LL_ADC_ClearFlag_EOCS(ADC1);
     uhADCxConvertedData = LL_ADC_REG_ReadConversionData12(ADC1);
  hADCxConvertedData_Temperature_DegreeCelsius = __LL_ADC_CALC_TEMPERATURE_TYP_PARAMS(INTERNAL_TEMPSENSOR_AVGSLOPE, 
                                                                                            INTERNAL_TEMPSENSOR_V25,
 INTERNAL_TEMPSENSOR_V25_TEMP,
 VDDA_APPLI,
 uhADCxConvertedData,
 LL_ADC_RESOLUTION_12B);
  }
} 
运行结果 
  
在变量窗口可以看到转换结果  |