From 267016d6cf472dd4c8d2a66dc9ed800b55997fea Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Sat, 11 May 2024 17:31:40 +0800
Subject: [PATCH] 继续完善电源管理
---
Function/POWER_MANAGE/power_manage.h | 75 ++++++++++++++++++++++++++++---------
1 files changed, 56 insertions(+), 19 deletions(-)
diff --git a/Function/POWER_MANAGE/power_manage.h b/Function/POWER_MANAGE/power_manage.h
index b2fc38a..3226d1e 100644
--- a/Function/POWER_MANAGE/power_manage.h
+++ b/Function/POWER_MANAGE/power_manage.h
@@ -3,39 +3,53 @@
#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 LITHIUM_PWR_DOWN_PORT GPIOF
-#define LITHIUM_PWR_DOWN_PIN GPIO_Pin_11
-// ﮵�Ƿѹ
-#define LIT_PWR_UNDER_PORT GPIOF
-#define LIT_PWR_UNDER_PIN GPIO_Pin_6
+// ﮵�͵�/����
+#define LITH_PWR_LOSE_PORT GPIOF
+#define LITH_PWR_LOSE_PIN GPIO_Pin_11
// ﮵����
-#define LITHIUM_DETECTION_PORT GPIOD
-#define LITHIUM_DETECTION_PIN GPIO_Pin_2
+#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_DOWN_PORT GPIOA
-#define ALKALI_PWR_DOWN_PIN GPIO_Pin_4
+// ��綪ʧ
+#define ALKALI_PWR_LOSE_PORT GPIOH
+#define ALKALI_PWR_LOSE_PIN GPIO_Pin_0
// ������
-#define ALKALI_DETECTION_PORT GPIOB
-#define ALKALI_DETECTION_PIN GPIO_Pin_2
+#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 HWIDO_EX_PWR_IO_READ GPIO_ReadInputDataBit(HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN)
+
+//�����ƶ˿�
+#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
@@ -56,6 +70,13 @@
#define AD_VTEM_CNT 8
+//ʣ������ٷֱȼ���
+#define BAT_PERSENT_LEVEL_3 70
+#define BAT_PERSENT_LEVEL_2 40
+#define BAT_PERSENT_LEVEL_1 20
+#define BAT_PERSENT_LEVEL_0 0
+
+
typedef enum
{
LMS_NONE,
@@ -68,18 +89,30 @@
AMS_NONE,
AMS_PERIOD,
AMS_KEY,
- AMS_GPRS_BEFORE,
+ AMS_WRC_BEFORE,
}ALKA_MEASURE_STATUS;
+
+typedef enum
+{
+ BAT_V_NONE, //��״̬
+ BAT_V_LOSE, //��ʧ��������ѹ���ͣ���Ϊ��ض�ʧ
+ BAT_V_DOWN, //Ƿѹ
+ BAT_V_LOW, //�͵�
+}BAT_V_STATUS;
+
+
#pragma pack(1)
//��������
//�ŵ㣺ʹ�öѿռ䣬��ַ����������Ƭ�ڴ棨���ָ�����ݣ�
//ȱ�㣺ÿ��ʹ������Ҫ�ֶ��ͷ�
typedef struct ad_data_get{
- uint8_t ad_ch;
+ u8 ad_ch;
u16 ad_buffer_cnt;
uint32_t ad_get_buffer[];
}ad_data_s;
+
+#pragma pack()
typedef struct pwr_vol{
@@ -87,12 +120,15 @@
ALKA_MEASURE_STATUS alka_flag;
FlagStatus mcu_temp_flag; //mcu�¶ȱ�־λ
float lith_vcc;
+ BAT_V_STATUS lith_vcc_status;
float alka_vcc;
+ BAT_V_STATUS alka_vcc_status;
float mcu_temperature;
- int8_t lith_vcc_per;
+ int8_t lith_vcc_per; //���ݵ�ѹ����İٷֱ�
+ int8_t lith_remain_use_time_per; //����ʹ��ʱ������ʣ��ٷֱ�
}PWR_VOL_T;
-#pragma pack()
+
extern uint8_t sys_bst_flag;
@@ -105,8 +141,9 @@
float Get_Alka_Bat_Voltage(void);
float Get_Lith_Bat_Voltage(void);
-void Get_Double_Bat_Voltage(PWR_VOL_T * pwr_vol_p);
+void GetPwrStatusPro(PWR_VOL_T * pwr_vol_p);
+void PowerManagrInit(void);
#endif
--
Gitblit v1.9.3