我在仿真中发现采样的数据与程序计算的数据不符。例如采样值为0x496,计算的电压值为0.92v,而按公式计算应为0.9458v。编译的程序的公式也没有错(是STM推荐的例子程序)程序如下:
ADCConvertedValueLocal = ADCConvertedValue;
Precent = (ADCConvertedValueLocal*100/0x1000); //算出百分比
Voltage = Precent*33; // 3.3V的电平,计算等效电平
printf("\r\n 当前AD转换结果为:0x%X, 百分比为:%d%%,电压值:%d.%d%dV.\n\r",
ADCConvertedValueLocal, Precent, Voltage/1000, (Voltage%1000)/100, (Voltage%100)/10);
即ADCConvertedValue =0x496时
输出结果Voltage =0.92v
而理论计算应为0.9458v
不知上述错误怎样引起的?而且采样还有点不稳 |