基于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);
}
}
运行结果
在变量窗口可以看到转换结果 |