From d6ce00f6b68d3d1ecaf44c972909f311ac1d3bf8 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Thu, 09 May 2024 19:54:54 +0800
Subject: [PATCH] 增加电源管理部分功能
---
Function/POWER_MANAGE/power_manage.h | 126 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 126 insertions(+), 0 deletions(-)
diff --git a/Function/POWER_MANAGE/power_manage.h b/Function/POWER_MANAGE/power_manage.h
new file mode 100644
index 0000000..e04f138
--- /dev/null
+++ b/Function/POWER_MANAGE/power_manage.h
@@ -0,0 +1,126 @@
+#ifndef _POWER_MANAGE_H_
+#define _POWER_MANAGE_H_
+
+#include "define_all.h"
+
+// ����������־λ����
+#define __VCC_PARA_FLAG_SET_(__HANDLE__) ((&pwr_vol_g)->__HANDLE__ = SET)
+// ����������־λ���
+#define __VCC_PARA_FLAG_CLEAR_(__HANDLE__) ((&pwr_vol_g)->__HANDLE__ = RESET)
+
+// ﮵�͵�/����
+#define LITH_PWR_LOSE_PORT GPIOF
+#define LITH_PWR_LOSE_PIN GPIO_Pin_11
+
+// ﮵����
+#define LITHIUM_DETECTION_PORT GPIOF
+#define LITHIUM_DETECTION_PIN GPIO_Pin_3
+
+#define LIT_DEC_ON GPIO_SetBits(LITHIUM_DETECTION_PORT,LITHIUM_DETECTION_PIN)
+#define LIT_DEC_OFF GPIO_ResetBits(LITHIUM_DETECTION_PORT,LITHIUM_DETECTION_PIN)
+
+
+// ��綪ʧ
+#define ALKALI_PWR_LOSE_PORT GPIOH
+#define ALKALI_PWR_LOSE_PIN GPIO_Pin_0
+
+// ������
+#define ALKALI_DETECTION_PORT GPIOF
+#define ALKALI_DETECTION_PIN GPIO_Pin_4
+
+#define ALK_DEC_ON GPIO_SetBits(ALKALI_DETECTION_PORT,ALKALI_DETECTION_PIN)
+#define ALK_DEC_OFF GPIO_ResetBits(ALKALI_DETECTION_PORT,ALKALI_DETECTION_PIN)
+
+
+// ���
+#define BORROW_PWR_PORT GPIOG
+#define BORROW_PWR_PIN GPIO_Pin_2
+
+#define BORROW_PWR_ON GPIO_ResetBits(BORROW_PWR_PORT,BORROW_PWR_PIN)
+#define BORROW_PWR_OFF GPIO_SetBits(BORROW_PWR_PORT,BORROW_PWR_PIN)
+
+//�����˿�
+#define HWIDO_EX_PWR_PORT GPIOF
+#define HWIDO_EX_PWR_PIN GPIO_Pin_5
+
+
+//�����ƶ˿�
+#define EX_PWR_EN_PORT GPIOG
+#define EX_PWR_EN_PIN GPIO_Pin_3
+#define EX_PWR_ON GPIO_SetBits(EX_PWR_EN_PORT,EX_PWR_EN_PIN)
+#define EX_PWR_OFF GPIO_ResetBits(EX_PWR_EN_PORT,EX_PWR_EN_PIN)
+
+
+#define AD_LITH_PF6_BAT_CH 5
+#define AD_LITH_PF6_BAT_CNT 8
+#define LITH_PF6_VOL_COE 1.206f
+
+#define AD_LITH_BAT_REF_VOL 5.0f
+#define AD_LITH_BAT_CH 4
+#define AD_LITH_BAT_CNT 8
+#define LITH_VOL_COE 2.01f
+
+#define AD_ALKA_BAT_REF_VOL 5.0f
+#define AD_ALKA_BAT_CH 8
+#define AD_ALKA_BAT_CNT 8
+#define ALKA_VOL_COE 3.14f
+
+#define AD_VTEM_CH ADC_CFGR_BUFSEL_TS
+#define AD_VTEM_CNT 8
+
+
+typedef enum
+{
+ LMS_NONE,
+ LMS_PERIOD,
+ LMS_KEY,
+ LMS_OPEN_VALVE_BEFORE,
+}LITH_MEASURE_STATUS;
+typedef enum
+{
+ AMS_NONE,
+ AMS_PERIOD,
+ AMS_KEY,
+ AMS_WRC_BEFORE,
+}ALKA_MEASURE_STATUS;
+
+#pragma pack(1)
+//��������
+//�ŵ㣺ʹ�öѿռ䣬��ַ����������Ƭ�ڴ棨���ָ�����ݣ�
+//ȱ�㣺ÿ��ʹ������Ҫ�ֶ��ͷ�
+typedef struct ad_data_get{
+ u8 ad_ch;
+ u16 ad_buffer_cnt;
+ uint32_t ad_get_buffer[];
+}ad_data_s;
+
+
+typedef struct pwr_vol{
+ LITH_MEASURE_STATUS lith_flag; //����������־λ
+ ALKA_MEASURE_STATUS alka_flag;
+ FlagStatus mcu_temp_flag; //mcu�¶ȱ�־λ
+ float lith_vcc;
+ float alka_vcc;
+ float mcu_temperature;
+ int8_t lith_vcc_per;
+}PWR_VOL_T;
+
+#pragma pack()
+
+extern uint8_t sys_bst_flag;
+
+extern uint8_t first_power_get_cnt_g;
+
+extern PWR_VOL_T pwr_vol_g;
+
+void Power_IO_Init(void);
+
+float Get_Alka_Bat_Voltage(void);
+float Get_Lith_Bat_Voltage(void);
+
+void GetBatVoltagePro(PWR_VOL_T * pwr_vol_p);
+
+
+#endif
+
+
--
Gitblit v1.9.3