//管理 GPIO 的初始化 #include "sys.h" #include "gpio.h" /**************************************** GPIO A1 ****************************************/ /** * @brief PA1 初始化,用于 LED2 */ void GPIO_A1_Init(void) { GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_GPIOA_CLK_ENABLE(); //开启 PA 时钟 GPIO_Initure.Pin = GPIO_PIN_1; //PA1 GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; //推挽输出 GPIO_Initure.Pull = GPIO_PULLUP; //上拉 GPIO_Initure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //高速 HAL_GPIO_Init(GPIOA, &GPIO_Initure); //初始化 PA1 } /****************************************************************************************/ /************************************** GPIO E3 C5 **************************************/ /** * @brief PE3 PC5 PD10 初始化,用于 KEY1 KEY2 KEY3 */ void GPIO_E3_C5_D10_Init(void) { GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_GPIOC_CLK_ENABLE(); //开启 PC 时钟 __HAL_RCC_GPIOE_CLK_ENABLE(); //开启 PE 时钟 __HAL_RCC_GPIOD_CLK_ENABLE(); //开启 PD 时钟 GPIO_Initure.Pin = GPIO_PIN_3; //PE3:对应 KEY1 GPIO_Initure.Mode = GPIO_MODE_INPUT; //输入 GPIO_Initure.Pull = GPIO_PULLUP; //上拉 GPIO_Initure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //高速 HAL_GPIO_Init(GPIOE, &GPIO_Initure); //初始化 PE3 GPIO_Initure.Pin = GPIO_PIN_5; //PC5:对应 KEY2 GPIO_Initure.Mode = GPIO_MODE_INPUT; //输入 GPIO_Initure.Pull = GPIO_PULLUP; //上拉 GPIO_Initure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //高速 HAL_GPIO_Init(GPIOC, &GPIO_Initure); //初始化 PC5 GPIO_Initure.Pin = GPIO_PIN_10; //PC5:对应 KEY3 GPIO_Initure.Mode = GPIO_MODE_INPUT; //输入 GPIO_Initure.Pull = GPIO_PULLUP; //上拉 GPIO_Initure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //高速 HAL_GPIO_Init(GPIOD, &GPIO_Initure); //初始化 PD10 } /****************************************************************************************/ /************************************ GPIO B0 B1 B12 ************************************/ /** * @brief PB0 PB1 PB12 初始化,用于 LCD 的 BLK RS CS */ void GPIO_B0_B1_B12_Init(void) { GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_GPIOB_CLK_ENABLE(); //开启 PB 时钟 GPIO_Initure.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_12; //PB0 PB1 PB12 GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; //推挽输出 GPIO_Initure.Pull = GPIO_PULLUP; //上拉 GPIO_Initure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //高速 HAL_GPIO_Init(GPIOB, &GPIO_Initure); //初始化 PB0 PB1 PB12 } /****************************************************************************************/