/************************************************************************************************* **Filename: app_gpio.c **Version : **Author : **Date : **Description: ** *************************************************************************************************/ #include "app_gpio.h" #include "mcu_bsp.h" /********************************************************************* * Extern Function declared ('extern') */ void GPIO_callback(void); /************************************************************************************************* * Function Name: * Description : * Arguments : * Return Value : *************************************************************************************************/ void LED_IO_Config(void) { PIN_Set_GPIO(U32BIT(LED_PIN),PIN_SEL_GPIO); //引脚设置成普通IO口 GPIO_Set_Output(U32BIT(LED_PIN)); //设置引脚为输出模式 GPIO_Pin_Set(U32BIT(LED_PIN)); } /************************************************************************************************* * Function Name: * Description : * Arguments : * Return Value : *************************************************************************************************/ void IIC_IO_Config(void) { i2c_Init(I2C0,U32BIT(I2C0_SCLK),U32BIT(I2C0_SDA)); //lsm6d IIC IO初始化 i2c_Init(I2C1,U32BIT(I2C1_SCLK),U32BIT(I2C1_SDA)); //lis2d IIC IO初始化 } /************************************************************************************************* * Function Name: * Description : * Arguments : * Return Value : *************************************************************************************************/ void Ctr_IO_Config(void) { //lsm6d 供电使能 IO PIN_Set_GPIO(U32BIT(PEN_PIN),PIN_SEL_GPIO); //引脚设置成普通IO口 GPIO_Set_Output(U32BIT(PEN_PIN)); //设置引脚为输出模式 GPIO_Pin_Set(U32BIT(PEN_PIN)); //Power Disable //lsm6d CS IO口 PIN_Set_GPIO(U32BIT(CS_PIN),PIN_SEL_GPIO); //引脚设置成普通IO口 GPIO_Set_Output(U32BIT(CS_PIN)); //设置引脚为输出模式 GPIO_Pin_Set(U32BIT(CS_PIN)); //CS设置为高,使能IIC通讯 //lsm6d SA0 IO口 PIN_Set_GPIO(U32BIT(SA0_PIN),PIN_SEL_GPIO); //引脚设置成普通IO口 GPIO_Set_Output(U32BIT(SA0_PIN)); //设置引脚为输出模式 GPIO_Pin_Clear(U32BIT(SA0_PIN)); //SA0设置为低,则设备的地址LSB为0 //电池采样控制引脚 PIN_Set_GPIO(U32BIT(CEN_PIN),PIN_SEL_GPIO); //引脚设置成普通IO口 GPIO_Set_Output(U32BIT(CEN_PIN)); //设置引脚为输出模式 CEN_ENABLE(); } /************************************************************************************************* * Function Name: * Description : * Arguments : * Return Value : *************************************************************************************************/ void INT_IO_Config(void) { //lis2dh 中断1 IO口 PIN_Set_GPIO(U32BIT(LIS2D_INT1),PIN_SEL_GPIO); GPIO_Set_Input(U32BIT(LIS2D_INT1),0); //设置为输入 不取反 PIN_Pullup_Enable(T_QFN_48, U32BIT(LIS2D_INT1)); //关闭上拉输入 GPIO_Input_Disable(U32BIT(LIS2D_INT1)); io_irq_disable(U32BIT(LIS2D_INT1)); //关闭IO口中断功能 //lis2dh 中断2 IO口 PIN_Set_GPIO(U32BIT(LIS2D_INT2),PIN_SEL_GPIO); GPIO_Set_Input(U32BIT(LIS2D_INT2),U32BIT(LIS2D_INT2)); //设置为输入取反 PIN_Pullup_Enable(T_QFN_48, U32BIT(LIS2D_INT2)); //上拉输入 GPIO_Input_Enable(U32BIT(LIS2D_INT2)); io_irq_enable(U32BIT(LIS2D_INT2),GPIO_callback); //使能IO口中断功能 } /*************************************************************************************************/