STM32 ADC转换如何计算STM32 ADC转换之后在ADC_DR上得到转换结果,这个转换结果是什么?该如何计算输入电压?

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/11 07:36:53
STM32 ADC转换如何计算STM32 ADC转换之后在ADC_DR上得到转换结果,这个转换结果是什么?该如何计算输入电压?
xS[oQ+h \j-yE ƆTJ\k(`r Z㙳'{VM4&93ܽw[Lk;hcί $TNsw(/`ˣ0CT,lR$ٲ:d(:l㺞ضW\.[BbC^:Z$SIQ؈y Q.iHs]hm&< 0^ UFS2|MMhP5։nx7rsNF)#JIT?>R)*%[`@= n؜Ԗ V2fQ5QZE|^ Ykpa5w{zW 9%ˏ|Ԋ&DUz2jK2*aY >ؤ̪q]m9kk\+:LCRF^UpJH?N x?B;Aݦ1V$ QH 㯣8ԲV$} '9=0?R @Gb'.N.Nۛ:q~sؠ*6 KZ

STM32 ADC转换如何计算STM32 ADC转换之后在ADC_DR上得到转换结果,这个转换结果是什么?该如何计算输入电压?
STM32 ADC转换如何计算
STM32 ADC转换之后在ADC_DR上得到转换结果,这个转换结果是什么?该如何计算输入电压?

STM32 ADC转换如何计算STM32 ADC转换之后在ADC_DR上得到转换结果,这个转换结果是什么?该如何计算输入电压?
你得到的结果是你当前AD引脚上的电压值相对于3.3V和4096转换成的数字.
假如你得到的AD结果是ADC_DR这个变量,他们存在以下关系:
ADC_DR/当前电压值 = 4096/3300毫伏
如果你反过程想得到当前电压值,可以如下计算:
unsigned long Voltage;
Voltage = ADC_DR; //---假设你得到的AD结果存放到ADC_DR这个变量中;
Voltage = (Voltage * 3300)/4096; //----你就得到了正确的电压结果,单位是mV
一般出于效率,我会们自己进行约分:
Voltage = (Voltage * 825)/1024; //----你就得到了正确的电压结果,单位是mV
而再进一步,效率会更高:
Voltage = (Voltage * 825)>>10; //----你就得到了正确的电压结果,单位是mV

得到一个二进制数,这个二进制数最大为ADC_DR都为1的时候。此时对应3.3V.所以最后的电压就是ADC_DR的值除以2的16次再乘以3.3