CC2640R2F 电池电量测量

xiaoxiao2021-03-01  8

网上很多都是利用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,有细微差别。可以接受。

转载请注明原文地址: https://www.6miu.com/read-3850255.html

最新回复(0)