From e328ebef585cea2351b37117b2d5ac4978ecd3c0 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 11 二月 2025 14:57:23 +0800
Subject: [PATCH] 1111111

---
 keil/include/drivers/PCA9555.h |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 102 insertions(+), 5 deletions(-)

diff --git a/keil/include/drivers/PCA9555.h b/keil/include/drivers/PCA9555.h
index 2205304..c15224a 100644
--- a/keil/include/drivers/PCA9555.h
+++ b/keil/include/drivers/PCA9555.h
@@ -13,9 +13,100 @@
 #define  PCA9555_REG_CFG0        0x06                        //  定义方向配置寄存器0地址    
 #define  PCA9555_REG_CFG1        0x07                        //  定义方向配置寄存器1地址      
 #define  PCA9555_DEVICE_ADDR     0x40                        //  定义PCA9555地址 
-#define SDA_0 gpio_pin_clr(SDA_PIN)
-#define SCL_0	gpio_pin_clr(SCL_PIN)
-void IIC_gpio_pca_init(void);
+#define  PCA_OUTPUT_CONFIG_MASK 0x00
+#define  PCA_INPUT_CONFIG_MASK 0xff
+#define  SDA_0 gpio_pin_clr(SDA_PIN)
+#define  SCL_0 gpio_pin_clr(SCL_PIN)
+#define  PCA_INPUT_DETECT   IO_PIN_17
+
+//输出和配置
+#define MAX_GPIO_NUM 16
+
+////0组
+//#define  MCU_A 		 	  	0x01
+//#define  CHG_G 				  0x02
+//#define  LORA_IRQ   		0x03
+//#define  LORA_NRST 			0x04
+//#define  ADC_MINIUS 		0x05
+//#define  INPUT_5V 			0x06
+//#define  PWR_ON 				0x07
+//#define  PWR_ENABLE 		0x08
+////1组
+//#define GPS_LED 	 			0x09
+//#define TTS_ENABLE 			0x0A
+//#define WAKE_UP 		 		0x0B
+//#define AIR780E_ENBALE 	0x0C
+//#define SOS_ENBALE 			0x0D
+//#define GPS_BACKUP 			0x0E
+//#define GPS_POWER  			0x0F
+//#define MAIN_RI    			0x10
+
+//重新定义宏
+//0组
+#define  PWR_GND 		 	 	0x01
+#define  IN_5V 				  0x02
+#define  CHGN   				0x03
+#define  MOTO 					0x04
+#define  BT_IRQ 	   		0x05
+#define  RED_LED 		  	0x06
+#define  GREEN_LED 			0x07
+#define  BT_LED 	    	0x08
+//1组
+#define LORA_LED 	 			0x09
+#define UWB_LED 		   	0x0A
+#define IO_KONG    		 	0x0B
+#define LORA_IRQ      	0x0C
+#define LORA_NRST 			0x0D
+#define SOS_ENBALE 			0x0E
+#define WK_UP  					0x0F
+#define BT_EN    				0x10
+
+
+
+
+//输入寄存器INT判断数组对应位置
+//input 0组
+#define PWR_GND_POSITION  (1<<(MAX_GPIO_NUM-PWR_GND))
+#define IN_5V_POSITION  (1<<(MAX_GPIO_NUM-IN_5V))
+#define CHGN_POSITION  (1<<(MAX_GPIO_NUM-CHGN))
+#define MOTO_POSITION  (1<<(MAX_GPIO_NUM-MOTO))
+#define BT_IRQ_POSITION  (1<<(MAX_GPIO_NUM-BT_IRQ))
+#define RED_LED_POSITION  (1<<(MAX_GPIO_NUM-RED_LED))
+#define GREEN_LED_POSITION  (1<<(MAX_GPIO_NUM-GREEN_LED))
+#define BT_LED_POSITION  (1<<(MAX_GPIO_NUM-BT_LED))
+//input 1组
+#define LORA_LED_POSITION  (1<<(MAX_GPIO_NUM-LORA_LED))
+#define UWB_LED_POSITION  (1<<(MAX_GPIO_NUM-UWB_LED))
+#define IO_KONG_POSITION  (1<<(MAX_GPIO_NUM-IO_KONG))
+#define LORA_IRQ_POSITION  (1<<(MAX_GPIO_NUM-LORA_IRQ))
+#define LORA_NRST_POSITION  (1<<(MAX_GPIO_NUM-LORA_NRST))
+#define SOS_ENBALE_POSITION  (1<<(MAX_GPIO_NUM-SOS_ENBALE))
+#define WK_UP_POSITION  (1<<(MAX_GPIO_NUM-WK_UP))
+#define BT_EN_POSITION  (1<<(MAX_GPIO_NUM-BT_EN))
+
+#define LORA_LED_ON      PCA9555_Set_One_Value_Output(LORA_LED,1)
+#define LORA_LED_OFF     PCA9555_Set_One_Value_Output(LORA_LED,0)
+
+#define UWB_LED_ON       PCA9555_Set_One_Value_Output(UWB_LED,1)
+#define UWB_LED_OFF      PCA9555_Set_One_Value_Output(UWB_LED,0)
+
+#define RED_LED_ON       PCA9555_Set_One_Value_Output(RED_LED,1)
+#define RED_LED_OFF      PCA9555_Set_One_Value_Output(RED_LED,0)
+
+#define GREEN_LED_ON     PCA9555_Set_One_Value_Output(GREEN_LED,1)
+#define GREEN_LED_OFF    PCA9555_Set_One_Value_Output(GREEN_LED,0)
+
+#define BT_LED_ON        PCA9555_Set_One_Value_Output(BT_LED,1)
+#define BT_LED_OFF       PCA9555_Set_One_Value_Output(BT_LED,0)
+
+#define MOTO_ON          PCA9555_Set_One_Value_Output(MOTO,1)
+#define MOTO_OFF         PCA9555_Set_One_Value_Output(MOTO,0)
+
+#define LORA_NRST_UP		 PCA9555_Set_One_Value_Output(LORA_NRST,1)
+#define LORA_NRST_DOWN	 PCA9555_Set_One_Value_Output(LORA_NRST,0)
+//uint8_t gps_led_output_state,tts_enbale_output_state,wake_up_output_state,air780e_enable_output_state,sos_enable_output_state,gps_backup_output_state,gps_power_output_state,main_ri_output_state;//1组output IO口从左到右1.0~1.7
+//uint8_t mcu_a_output_state,chg_g_output_state,lora_irq_output_state,lora_nrst_output_state,adc_minius_output_state,input_5v_output_state,pwr_on_output_state,pwr_enable_output_state;//2组output IO口从左到右0.0~0.7
+//void IIC_gpio_pca_init(void);
 void IIC2_pca_Start(void);
 void IIC_pca_Ready(void);
 void IIC2_pca_Stop(void);
@@ -31,5 +122,11 @@
 void PCA9555_readdata(unsigned char addr,unsigned char* pBuffer);
 void PCA9555_Set_All_Output(unsigned char value);
 void PCA9555_Set_One_Value_Output(unsigned char num,unsigned char value);
-void PCA9555_Set_One_Value_Config(unsigned char num,unsigned char value) ;
-void PCA9555_init();
\ No newline at end of file
+void PCA9555_Set_One_Value_Config(unsigned char num,unsigned char value);
+void PCA9555_Set_One_Value_Polarity_input(unsigned char num,unsigned char value);
+void PCA9555_init();
+//拓展函数
+int read_userkey_input_pca_lora();
+static void pca_input_detect_irq_handler(enum IO_PIN_T pin);
+static void pca_handler(enum IO_PIN_T pin);
+void pca_input_detection_init(GPIO_IRQ_HANDLER_T irq_handler);
\ No newline at end of file

--
Gitblit v1.9.3