[fix][misc][adc] 修复 ADC 电压转换的计算错误

This commit is contained in:
sp-cai 2024-06-01 13:27:12 +08:00 committed by Rbb666
parent 62d321caa0
commit 884e391954
1 changed files with 2 additions and 1 deletions

View File

@ -184,7 +184,7 @@ rt_int16_t rt_adc_voltage(rt_adc_device_t dev, rt_int8_t channel)
/*read the value and convert to voltage*/
dev->ops->convert(dev, channel, &value);
voltage = value * vref / (1 << resolution);
voltage = value * vref / ((1 << resolution) - 1);
_voltage_exit:
return voltage;
@ -285,6 +285,7 @@ static int adc(int argc, char **argv)
rt_kprintf("adc read <channel> - read adc value on the channel\n");
rt_kprintf("adc disable <channel> - disable adc channel\n");
rt_kprintf("adc enable <channel> - enable adc channel\n");
rt_kprintf("adc voltage <channel> - read voltage on the channel\n");
result = -RT_ERROR;
}