#include "gd32e23x.h" #include "gpio.h" #include "systick.h" #include "board_config.h" /** * ************************************************************************ * @brief 初始化 GPIO 为确定状态 * * @details 本函数仅为外设提供确定的初始状态,避免因GPIO状态不确定而导致的异常动作。 * 在系统复位后,GPIO寄存器可能处于不确定状态,通过显式配置确保: * - 未使用的GPIO配置为输入或低功耗状态 * - 关键控制信号配置为安全的默认状态 * - 防止外设因GPIO状态不明确而产生意外行为 * * @note 此函数应在系统初始化早期调用,在启用具体外设功能之前执行 * @note 具体的外设功能初始化应在各自模块中单独进行 * * @param none * @return none * ************************************************************************ */ void gpio_init(void) { // 使能 LED 时钟 rcu_periph_clock_enable(LED_RCU); // 配置 LED 为输出模式 gpio_mode_set(LED_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LED_PIN); gpio_output_options_set(LED_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LED_PIN); // 初始化 LED 为低电平(LED 开启) gpio_bit_reset(LED_PORT, LED_PIN); }