#include "devicegpioinit.h" #include "gpio.h" void BORROW_PWR_EN_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(BORROW_PWR_EN_PIN_NUM_GROUP, BORROW_PWR_EN_PIN_NUM, OUT_PUSHPULL); BORROW_PWR_EN_NUM_L; } void POWER_3V8_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(GPIO_GPRS_POWER_PIN_GROUP, GPIO_GPRS_POWER_PIN_NUM, OUT_PUSHPULL); OutputIO(GPRS_PWR_EN_PIN_GROUP, GPRS_PWR_EN_PIN_NUM, OUT_PUSHPULL); // GPRS_POWER_OFF; // GPRS_POWER_EN_L; } /******************************************************************************* * Function Name: Fram_Flash_GPIO_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void Fram_Flash_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(E2P_VCC_EN_GROUP, E2P_VCC_EN_NUM, OUT_PUSHPULL); OutputIO(FRAM_CS1_GROUP, FRAM_CS1_NUM, OUT_PUSHPULL); OutputIO(FRAM_CS2_GROUP, FRAM_CS2_NUM, OUT_PUSHPULL); AltFunIO(Fram_Flash_SPI_SCL_GROUP, Fram_Flash_SPI_SCL_PIN_NUM, ALTFUN_NORMAL); // SCK AltFunIO(Fram_Flash_SPI_MOSI_PIN_GROUP, Fram_Flash_SPI_MISO_PIN_NUM, ALTFUN_NORMAL); // MISO AltFunIO(Fram_Flash_SPI_MISO_PIN_GROUP, Fram_Flash_SPI_MOSI_PIN_NUM, ALTFUN_NORMAL); // MOSI E2P_VCC_OFF; FM25V02_CS_HIGH; } /******************************************************************************* * Function Name: LCD_Power_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void LCD_Power_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(LCD_POWER_CON_GROUP, LCD_POWER_CON_NUM, OUT_PUSHPULL); LCD_Power_OFF; } /******************************************************************************* * Function Name: LCD_Power_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void LCD_Power_lowpower_init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO(LCD_POWER_CON_GROUP, LCD_POWER_CON_NUM); } /******************************************************************************* * Function Name: LCD_GPIO_Init * Parameters:none * Return: none * Description: ******************************************************************************/ void LCD_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(LCD_RD_CLK_PIN_GROUP, LCD_RD_CLK_PIN_NUM, OUT_PUSHPULL); OutputIO(LCD_CS_PIN_GROUP, LCD_CS_PIN_NUM, OUT_PUSHPULL); // OutputIO(LCD_DATA_PIN_GROUP, LCD_DATA_PIN_NUM,OUT_PUSHPULL); // OutputIO(LCD_WR_CLK_PIN_GROUP, LCD_WR_CLK_PIN_NUM,OUT_PUSHPULL); } void GPIO_C_7_INIT(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(LCD_RD_CLK_PIN_GROUP, LCD_RD_CLK_PIN_NUM, IN_NORMAL); InputtIO(LCD_CS_PIN_GROUP, LCD_CS_PIN_NUM, IN_NORMAL); } void LCD_GPIO_sleep_mode(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO(LCD_RD_CLK_PIN_GROUP, LCD_RD_CLK_PIN_NUM); AnalogIO(LCD_CS_PIN_GROUP, LCD_CS_PIN_NUM); AnalogIO(LCD_SDA_PIN_GROUP, LCD_SDA_PIN_NUM); AnalogIO(LCD_SCL_PIN_GROUP, LCD_SCL_PIN_NUM); } /******************************************************************************* * Function Name: Key_GPIO_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void Key_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(KEY1_PIN_GROUP, KEY1_PIN_NUM, IN_PULLUP); InputtIO(KEY2_PIN_GROUP, KEY2_PIN_NUM, IN_PULLUP); InputtIO(KEY3_PIN_GROUP, KEY3_PIN_NUM, IN_PULLUP); } /******************************************************************************* * Function Name: BAT_io_dec_init * Parameters: none * Return: none * Description: ******************************************************************************/ void BAT_io_dec_init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(LOW_PWR_INT_PIN_GROUP, LOW_PWR_INT_PIN_NUM, IN_PULLUP); InputtIO(UNDER_PWR_INT_PIN_GROUP, UNDER_PWR_INT_PIN_NUM, IN_PULLUP); InputtIO_H(ALKA_BAT_M_PIN_NUM, IN_NORMAL); InputtIO(LITH_BAT_LOW_PWR_PIN_GROUP, LITH_BAT_LOW_PWR_PIN_NUM, IN_PULLUP); OutputIO(ALKA_TEST_EN_PIN_GROUP, ALKA_TEST_EN_PIN_NUM, OUT_PUSHPULL); OutputIO(LITH_TEST_EN_PIN_GROUP, LITH_TEST_EN_PIN_NUM, OUT_PUSHPULL); ALKA_TEST_OFF; LITH_TEST_OFF; } void Alka_INT_init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO_H(ALKA_BAT_M_PIN_NUM, IN_NORMAL); } void BAT_ADC_IO_init() { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO(LITH_BAT_M_PIN_GROUP, LITH_BAT_M_PIN_NUM); //**PF6--->ADC_IN5 AnalogIO_H(ALKA_BAT_M_PIN_NUM); //**PH0--->ADC_IN9 } /******************************************************************************* * Function Name: Alarm_IO_init * Parameters: none * Return: none * Description: ******************************************************************************/ void Alarm_IO_init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(ALARM_LINE_PIN_GROUP, ALARM_LINE_PIN_NUM, IN_PULLUP); } /******************************************************************************* * Function Name: SWITCH_GPIO_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void SWITCH_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(HWID0_PIN_GROUP, HWID0_PIN_NUM, IN_NORMAL); } void LIMIT_TRIG_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(LIMIT_TRIG_PIN_GROUP, LIMIT_TRIG_PIN_NUM, IN_NORMAL); } void EX_PWR_EN_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(EX_PWR_EN_PIN_GROUP, EX_PWR_EN_PIN_NUM, OUT_PUSHPULL); // ¿Õµç PG3 // EX_PWR_EN_H; } /******************************************************************************* * Function Name: POWER_EX_GPIO_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void POWER_EX_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(POWER_EX_EN_PIN_GROUP, POWER_EX_EN_PIN_NUM, OUT_PUSHPULL); OutputIO(POWER_9V_EN_PIN_GROUP, POWER_9V_EN_PIN_NUM, OUT_PUSHPULL); OutputIO(POWER_12V_EN_PIN_GROUP, POWER_12V_EN_PIN_NUM, OUT_PUSHPULL); powerEX_OFF; power9V_OFF; power12V_OFF; } /******************************************************************************* * Function Name: POWER_EX_GPIO_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void OUTPUT_EN_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(RS485_SYNC_PIN_GROUP, RS485_SYNC_PIN_NUM, IN_NORMAL); OutputIO(OUTPUT2_EN_PIN_GROUP, OUTPUT2_EN_PIN_NUM, OUT_PUSHPULL); OutputIO(OUTPUT1_EN_PIN_GROUP, OUTPUT1_EN_PIN_NUM, OUT_PUSHPULL); OUTPUT2_EN_OFF; OUTPUT1_EN_OFF; } /******************************************************************************* * Function Name: RS485_GPIO_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void RS485_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(RS485_RE_EN_PIN_GROUP, RS485_RE_EN_PIN_NUM, OUT_PUSHPULL); AltFunIO(RS485_TXD_EN_PIN_GROUP, RS485_TXD_EN_PIN_NUM, ALTFUN_NORMAL); AltFunIO(RS485_RXD_EN_PIN_GROUP, RS485_RXD_EN_PIN_NUM, ALTFUN_NORMAL); OutputIO(RS485_POWER_EN_PIN_GROUP, RS485_POWER_EN_PIN_NUM, OUT_PUSHPULL); RS485_RE_L; RS485_POWER_OFF; } void RS485_GPIO_sleep_mode(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(RS485_RE_EN_PIN_GROUP, RS485_RE_EN_PIN_NUM, OUT_PUSHPULL); AnalogIO(RS485_TXD_EN_PIN_GROUP, RS485_TXD_EN_PIN_NUM); AnalogIO(RS485_RXD_EN_PIN_GROUP, RS485_RXD_EN_PIN_NUM); OutputIO(RS485_POWER_EN_PIN_GROUP, RS485_POWER_EN_PIN_NUM, OUT_PUSHPULL); RS485_RE_L; RS485_POWER_OFF; } /******************************************************************************* * Function Name: RS232_GPIO_Init * Parameters: none * Return: none * Description: ******************************************************************************/ void GPRS_RS232_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AltFunIO(GPRSRS232_TXD_EN_PIN_GROUP, GPRSRS232_TXD_EN_PIN_NUM, ALTFUN_NORMAL); AltFunIO(GPRSRS232_RXD_EN_PIN_GROUP, GPRSRS232_RXD_EN_PIN_NUM, ALTFUN_NORMAL); } void GPRS_RS232_GPIO_sleep_mode(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO(GPRSRS232_TXD_EN_PIN_GROUP, GPRSRS232_TXD_EN_PIN_NUM); AnalogIO(GPRSRS232_RXD_EN_PIN_GROUP, GPRSRS232_RXD_EN_PIN_NUM); } void Upper_RS232_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(UTXRD_RE_EN_PIN_GROUP, UTRXD_RE_EN_PIN_NUM, OUT_PUSHPULL); AltFunIO(UTXD_EN_PIN_GROUP, UTXD_EN_PIN_NUM, ALTFUN_NORMAL); AltFunIO(URXD_EN_PIN_GROUP, URXD_EN_PIN_NUM, ALTFUN_NORMAL); UTRXD_RE_L; } void Upper_RS232_GPIO_sleep_mode(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(UTXRD_RE_EN_PIN_GROUP, UTRXD_RE_EN_PIN_NUM, OUT_PUSHPULL); AnalogIO(UTXD_EN_PIN_GROUP, UTXD_EN_PIN_NUM); AnalogIO(URXD_EN_PIN_GROUP, URXD_EN_PIN_NUM); UTRXD_RE_L; } void RTCINT_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(RTC_INT_PIN_GROUP, RTC_INT_PIN_NUM, IN_PULLUP); } void RTC_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(RTC_CLK_PIN_GROUP, RTC_CLK_PIN_NUM, OUT_PUSHPULL); OutputIO(RTC_SDA_PIN_GROUP, RTC_SDA_PIN_NUM, OUT_PUSHPULL); } void Motor_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý OutputIO(Motor_A_PIN_GROUP, Motor_A_PIN_NUM, OUT_PUSHPULL); OutputIO(Motor_B_PIN_GROUP, Motor_B_PIN_NUM, OUT_PUSHPULL); InputtIO(Motor_OP_PIN_GROUP, Motor_OP_PIN_NUM, IN_NORMAL); InputtIO(Motor_CL_PIN_GROUP, Motor_CL_PIN_NUM, IN_NORMAL); InputtIO(FORCE_OPEN_INT_PIN_GROUP, FORCE_OPEN_INT_PIN_NUM, IN_NORMAL); } void Motor_GPIO_Init_sleep_mode(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO(Motor_A_PIN_GROUP, Motor_A_PIN_NUM); AnalogIO(Motor_B_PIN_GROUP, Motor_B_PIN_NUM); } void Low_Pluse_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO_H(LOWPLUSE_PIN_NUM, IN_NORMAL); } void Low_Pluse_GPIO_sleep_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO_H(LOWPLUSE_PIN_NUM); GPIOH_ResetBits(LOWPLUSE_PIN_NUM); } void Low_Pluse_ADC_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO_H(LOWPLUSE_PIN_NUM); //**PH3--->ADC_IN12 GPIOH_ResetBits(LOWPLUSE_PIN_NUM); } void UNCAP_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(UNCAP_INT_PIN_GROUP, UNCAP_INT_PIN_NUM, IN_NORMAL); } void Force_Open_GPIO_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý InputtIO(FORCE_OPEN_INT_PIN_GROUP, FORCE_OPEN_INT_PIN_NUM, IN_NORMAL); } void All_NO_USE_GPIO_sleep_mode(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý AnalogIO(GPIOG, GPIO_Pin_6); //**WD_INÒý½Å } /*¸´µ©Î¢ÖлñµÃÀíÏ빦ºÄµÄ×¢Òâµã£º 1 ÔÚÐÝÃßʱ²»Ê¹ÓÃµÄ GPIO ÅäÖøß×è̬£» 2 SWD µÄ SWCLK ºÍ SWIO ÅäÖÃÉÏÀ­µç×èʹÄÜ£» 3 ±ÜÃâÓÐÊäÈë¹Ü½Å¸¡¿Õ£» 4 ×¢Òâ ADC µÄ BUFFER ʹÄÜÊÇ·ñ¹Ø±Õ£» 5 µÍ¹¦ºÄϲ»ÐèÒª¹¤×÷µÄµç·£¬Éè¼ÆÎªÎÞµç»òÕßµçÔ´¿É¿Ø×´Ì¬£»*/ void GPIO_IPD_Init(void) { CMU_PERCLK_SetableEx(PADCLK, ENABLE); /*GPIOÅäÖóɸß×è̬*/ CloseIO(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | ALARM_LINE_PIN_NUM); CloseIO(GPIOB, OUTPUT2_EN_PIN_NUM | OUTPUT1_EN_PIN_NUM | POWER_12V_EN_PIN_NUM | POWER_9V_EN_PIN_NUM| GPIO_Pin_13 | LOW_PWR_INT_PIN_NUM | UNDER_PWR_INT_PIN_NUM | Motor_A_PIN_NUM | Motor_B_PIN_NUM); CloseIO(GPIOC, FRAM_CS1_NUM | FRAM_CS2_NUM | LIMIT_TRIG_PIN_NUM); CloseIO(GPIOD, GPIO_Pin_8 | LCD_RD_CLK_PIN_NUM | LCD_CS_PIN_NUM | LITH_BAT_LOW_PWR_PIN_NUM | UNCAP_INT_PIN_NUM); CloseIO(GPIOE, GPIO_Pin_5 | GPIO_GPRS_POWER_PIN_NUM | GPIO_Pin_9 | GPRS_PWR_EN_PIN_NUM); CloseIO(GPIOF, GPIO_Pin_14 | GPIO_Pin_15 | GPIO_Pin_0 | ALKA_TEST_EN_PIN_NUM | LITH_TEST_EN_PIN_NUM | GPIO_Pin_1 | GPIO_Pin_2 | HWID0_PIN_NUM); CloseIO(GPIOG, EX_PWR_EN_PIN_NUM | BORROW_PWR_EN_PIN_NUM | GPIO_Pin_7); CloseH_IO(GPIOH, LOWPLUSE_PIN_NUM | GPIO_Pin_0); //ÅäÖÃSWD swclk ºÍswlo ÅäÖÃΪÉÏÀ­µç×èʹÄÜ InputtIO(GPIOG, GPIO_Pin_8, IN_PULLUP); InputtIO(GPIOG, GPIO_Pin_9, IN_PULLUP); /*¹Ø±Õ²»ÐèÒªµÄµç·*/ // ¶¨Ê±Æ÷ CMU_OPCCR2_BSTCKE_Setable(DISABLE); // ADC VRTC_ADCCR_CKE_Setable(DISABLE); // UART CMU_OPCCR1_UART1CKE_Setable(DISABLE); CMU_PERCLK_SetableEx(UART1CLK, DISABLE); CMU_PERCLK_SetableEx(UART5CLK, DISABLE); // DMA CMU_PERCLK_SetableEx(DMACLK, DISABLE); //IIC CMU_PERCLK_SetableEx(I2C0CLK, DISABLE); CMU_OPCCR1_I2C0CKE_Setable(DISABLE); //»ù±¾¶¨Ê±Æ÷ CMU_PERCLK_SetableEx(BSTIMCLK, DISABLE); CMU_PERCLK_SetableEx(PADCLK, DISABLE); //adc buffer COMP_ICR_BUFBYP_Setable(DISABLE); COMP_ICR_BUF_OFF_Setable(ENABLE); }