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 | 114 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 83 insertions(+), 31 deletions(-) diff --git a/keil/include/drivers/PCA9555.h b/keil/include/drivers/PCA9555.h index 3638272..c15224a 100644 --- a/keil/include/drivers/PCA9555.h +++ b/keil/include/drivers/PCA9555.h @@ -17,49 +17,96 @@ #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 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 +#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 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 +#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 MCU_A_POSITION (1<<(MAX_GPIO_NUM-MCU_A)) -#define CHG_G_POSITION (1<<(MAX_GPIO_NUM-CHG_G)) +#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 ADC_MINIUS_POSITION (1<<(MAX_GPIO_NUM-ADC_MINIUS)) -#define INPUT_5V_POSITION (1<<(MAX_GPIO_NUM-INPUT_5V)) -#define PWR_ON_POSITION (1<<(MAX_GPIO_NUM-PWR_ON)) -#define PWR_ENABLE_POSITION (1<<(MAX_GPIO_NUM-PWR_ENABLE)) -//input 1组 -#define GPS_LED_POSITION (1<<(MAX_GPIO_NUM-GPS_LED)) -#define TTS_ENABLE_POSITION (1<<(MAX_GPIO_NUM-TTS_ENABLE)) -#define WAKE_UP_POSITION (1<<(MAX_GPIO_NUM-WAKE_UP)) -#define AIR780E_ENBALE_POSITION (1<<(MAX_GPIO_NUM-AIR780E_ENBALE)) #define SOS_ENBALE_POSITION (1<<(MAX_GPIO_NUM-SOS_ENBALE)) -#define GPS_BACKUP_POSITION (1<<(MAX_GPIO_NUM-GPS_BACKUP)) -#define GPS_POWER_POSITION (1<<(MAX_GPIO_NUM-GPS_POWER)) -#define MAIN_RI_POSITION (1<<(MAX_GPIO_NUM-MAIN_RI)) +#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 IIC_gpio_pca_init(void); void IIC2_pca_Start(void); void IIC_pca_Ready(void); void IIC2_pca_Stop(void); @@ -78,3 +125,8 @@ 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