CC2640R2F 电池电量测量

网上很多都是利用ADC测量,CC26xx内部有专门测试芯片供电电压功能。

方法如下:

1.simpleBLEPeripheral.c文件中添加如下头文件。

#include <driverlib/aon_batmon.h>

2.在需要的地方添加

//BAT Monitor   AONBatMonEnable();   
// <int.frac> format size <3.8> in units of volt   
//返回值32位中[10:8]代表INT 。[7:0]代表FRAC ,对于小数部分,一个单位代表1/256v,小数部分的分辨率只有50mV(TYP)   
batval = AONBatMonBatteryVoltageGet();

我的代码如下:

uint32_t batval = 0;
uint8_t tmp[4] = {0}; 
OVVIProfile_GetParameter(OVVIPROFILE_CHAR1, nbOVVI_Char1); 
AONBatMonEnable(); 
batval = AONBatMonBatteryVoltageGet(); 
tmp[0] = batval >> 24;
tmp[1] = batval >> 16;
tmp[2] = batval >> 8;
tmp[3] = batval >> 0;
OVVI_RF_Communication_data_Send(nbOVVI_Char1,time,4);

实际结果:

我是用仿真器提供的3.3v供电,然后用万用表测试电压在3.30v~3.31v飘。

然后通过如下notify函数OVVI_RF_Communication_data_Send(nbOVVI_Char1,tmp,4);

送到手机端 数据是 00000352

通过数据拆分,整数部分 03 即 3v

小数部分 0x52  : 82/255 = 0.32 

那么获取电压是3.32v,有细微差别。可以接受。


猜你喜欢

转载自blog.csdn.net/qq_37610155/article/details/80776296