我们一般电池电压检测都是通过IO口的AD转换来采集电压。但是由于项目的IO口资源比较少,刚好2640内部具有检测电池电压的功能,所以,我们打算用内部的电路来检测电压,具体实现如下。
一、包含相应的头文件
#include <driverlib/aon_batmon.h>
二、使能电池检测
AONBatMonEnable();
三、开始电池电压检测
AONBatMonBatteryVoltageGet();
该函数返回是一个int型,32位中[10:8]代表INT,[7:0]代表FRAC,对于小数部分,一个单位代表1/256v,小数部分的分辨率只有50mV
uint32_t batval;
float battery_float;
float tmp[2] = {0};
batval = AONBatMonBatteryVoltageGet();
tmp[0] = (batval >> 8) & 0xff;
tmp[1] = batval & 0xff;
battery_float = (tmp[0] + tmp[1] / 256);
这样就能简单的实现电池电压检测。