研究生
最后登录1970-1-1
在线时间 小时
注册时间2016-7-16
|
楼主 |
发表于 2016-9-13 18:24:20
|
显示全部楼层
本帖最后由 李小龙 于 2016-9-13 18:35 编辑
这个写的有点绕,我后面又改了,更简单的了。你用的这个,我是把整数和小数分离了,小数部分乘以1000000转换成了整数(方便显示)。还是用我新改的吧。新改的函数,入口参数num可以直接带入数字,也可以是变量了。然后就是ad采集的电压,我没有进行整数小数部分分离了,直接把采集的电压乘以100(具体大小看你保留的有效位,我这里是保留小数后两位,所以乘以100,)然后直接取整,然后通过Voltage/100,Voltage%100, 分离整数和小数部分。
int Get_battery_voltage(void)
{
int Volt;
Volt=Get_Adc_Average(ADC_Channel_10,10);
Volt=((float)Volt*(3.3/4096)*115.0/15.0)*100;//Volt是整型
return Volt;
}
Voltage=Get_battery_voltage();//因为
OLED_ShowStr(0, 3, (u8*)"VOL: ", 6);
OLED_ShowNum(30, 3, Voltage/100, 2, 6);//
OLED_ShowStr(42, 3, (u8*)".", 6);
OLED_ShowNum(48, 3, Voltage%100, 2, 6);
OLED_ShowStr(60, 3, (u8*)" V", 6);
|
|