【备赛】使用ADC测量电压、占空比
一、前言
ADC可以计算出模拟电压的值,(逐次逼近法)。
我们可以用这种方法得知实时的某个引脚的模拟电压值。
比如 一个引脚输出pwm的值,我们使用ADC就可以计算出它当前的模拟电压值。
(需要用线链接)比如你用PA1引脚输出pwm,再用PB15作为ADC的IN,那就得把这两个接上。把信号传过去。
二、cubeMX配置
如图,配置ADC2的引脚,然后选择Single-ended。
开启NVIC使能。
三、代码
int adc_value;
double get_vol(ADC_HandleTypeDef *hadc)
{
HAL_ADC_Start(hadc);
adc_value = HAL_ADC_GetValue(hadc);
return 3.3 * adc_value / 4096;
}
先打开ADC通道,再用HAL库的函数,读取计数值(具体原理这里不详细展开)
得出的计数值/4096,就是占空比,
注意要想得到整数形式的占空比值,需要写的格式。
percentage = ((float)adc_value / 4096.0f) * 100;
再乘基准电压(高电平值)就是 测的电压了。