HAL库ADC采集
STM32内部ADC的参数
分辨率 :12bit
通道数 :16(外部)+2(内部)
采集模式 :single(单次模式)、continue(连续模式)、scan(扫描模式)、discontinuous(间断模式)
输入时钟 :不超过14MHz
基本使用:1s采样间隔,采集通道0的电压(轮询方式)
参考:《STM32F1用户手册 HAL与LL驱动描述》 7.2.2 How to use this Driver (ADC)
步骤
- 配置参数,在CubeMX上已经做好了并生成了初始化代码,此处不再赘述
- 调用
HAL_ADC_Start()
启动一次转换 - 调用
HAL_ADC_PollForConversion()
查询转换是否完成 - 调用
HAL_ADC_GetValue()
得到转换结果 - 调用
HAL_ADC_Stop()
结束并关闭ADC外设
参考代码
//1.省略了配置过程
while(1)
{
//2. 启动
HAL_ADC_Start(&hadc1);
//等待1s,用osDelayUntil()会更精确
osDelay(1000);
//3. 查询
if(HAL_ADC_PollForConversion(&hadc1,1000) != HAL_OK)
{
Error_Handler();
}
//4.拿结果
volt = HAL_ADC_GetValue();
//5.停止
HAL_ADC_Stop();
}