ADC Battery
ADC Battery示例实现了ADC对电池电压的测量。
ADC Battery示例的源代码和工程文件位于SDK_Folder\projects\peripheral\adc\battery,其中工程文件在文件夹Keil_5下。
代码理解
示例工程流程图如图 4所示:
- 配置ADC模块。
g_adc_handle.init.channel_p = ADC_INPUT_SRC_BAT; g_adc_handle.init.channel_n = ADC_INPUT_SRC_BAT; g_adc_handle.init.input_mode = ADC_INPUT_SINGLE; g_adc_handle.init.ref_source = ADC_REF_SRC_BUF_INT; g_adc_handle.init.ref_value = ADC_REF_VALUE_0P8; g_adc_handle.init.clock = ADC_CLK_1P6M;ADC配置参数细节请参考ADC。此示例中init.channel_p、init.channel_n选择ADC_INPUT_SRC_BAT。init.ref_value选择ADC_REF_VALUE_0P8即0.85 V。
说明:可检测的VBAT范围在2.0 V ~ 3.8 V,当选择ADC的channel通道为BAT,测量的信号来自内部的分压电路(确保输入在0 ~ 1.6 V),所以参考电压应选择0.85 V,以提升测量精度。
- 调用hal_gr551x_vbat_init()接口初始化ADC BATTERY模块。
- 调用hal_gr551x_vbat_read()接口读取电池电压。接口返回值即为电池当前电压,单位伏(V)。
测试验证
- 用GProgrammer下载battery.bin至开发板。
- 将开发板串口连接至PC端,打开并配置GRUart。
- 在GRUart的Receive Data窗口中将会显示转化后的电池电压值。