使用CC2541的ADC P0.6口,采集电压值,发现仅能采集0~0.2V之间的变化。
时间:10-02
整理:3721RD
点击:
我最近项目中有一个应用,需要做低电量检测。
我对锂电池的电压用电阻做了分压(电压范围 < 3.3V)后接到了P0_6口。
CC2541的电压检测用的就是HAL_ADC.C文件中的接口函数,具体如下:
首先初始化:
HalAdcInit();
在任务中,则每隔2秒钟调用一次读取操作
HalAdcSetReference( HAL_ADC_REF_AVDD );
adc = HalAdcRead( HAL_ADC_CHN_AIN6, HAL_ADC_RESOLUTION_10 );//选择了通道6
但是当电压值大于0.2V后,读取到的值就为 1FF;
如果是在0~0.2V之间,则变化从0~1FF。
请问这是什么问题呢?
又做了进一步测试。将P0.6口改为P0.0口。
设置内部参考电压VDD5:HalAdcSetReference( HAL_ADC_REF_AVDD );
则此时可以测量到0~1.25V的电压。值的范围也是从0~0x1FF。
而如果改为1.25V,HalAdcSetReference( HAL_ADC_REF_125V );
则测量范围又减小了,现象很奇怪。
你的功能实现了吗,我也在做CC2541检测电池电量,能不能参考一下