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
|