补充提交battery ntc enable gpio 控制
authorSnickerSun <snickersun@163.com>
Tue, 9 Apr 2024 10:43:35 +0000 (18:43 +0800)
committerSnickerSun <snickersun@163.com>
Tue, 9 Apr 2024 10:43:35 +0000 (18:43 +0800)
code/sdk/application/battery/service/battery_driver.cpp

index 12649d5..504acfe 100644 (file)
@@ -78,7 +78,7 @@ typedef enum {
 #define adc_trans_sytick_to_voltage(x) ((float)(((float)(x) * 17) / 40960))
 #define adc_trans_sytick_to_voltage_diff(x) ((float)(((float)((x) - 2048) * 17) / 20480))
 
-
+#define BATTERY_NTC_GPIO S_AGPIO_L21
 float pcb_ntc_map[][2]={
 {27.2186,0},
 {26.076,1},
@@ -364,7 +364,9 @@ static bool adc_get_sample_result(float *voltage, uint8_t channel)
     uint32_t discard_number = 0;
     uint32_t stick = 0;
     uint32_t sample_zero_count = 0;
-
+    //开启 battery NTC 开关
+    uapi_gpio_set_val(BATTERY_NTC_GPIO,GPIO_LEVEL_LOW);
+       
     if (channel >= ADC_CHANNEL_4) {
         sample_number = HAL_ADC_SAMPLE_NUMBER_CONFIG_1;
         discard_number = HAL_ADC_DISCARD_NUMBER_CONFIG_1;
@@ -407,12 +409,20 @@ static bool adc_get_sample_result(float *voltage, uint8_t channel)
     
     
     if(channel == 2)
-    *voltage = adc_trans_systick_to_battery_voltage(stick);
-    else if (channel == 0)
-    *voltage = adc_trans_systick_to_battery_ntc(stick);
+    {
+        *voltage = adc_trans_systick_to_battery_voltage(stick);
+    }
+    else if (channel == 0){
+        *voltage = adc_trans_systick_to_battery_ntc(stick);
+    }
     else if (channel == 5)
-    *voltage = adc_trans_systick_to_pcb_ntc(stick);
+    {
+        *voltage = adc_trans_systick_to_pcb_ntc(stick);
+    }
     // osal_printk("channel = %d , stick = %d , voltage = %.04f.\r\n", channel,stick,*voltage);
+        
+    //关闭 battery NTC 电源     
+    uapi_gpio_set_val(BATTERY_NTC_GPIO,GPIO_LEVEL_HIGH);
 
     UNUSED(discard_number);
     return true;