/********************************************************************************************************* * Module : Led.c * Abstract : Led modules,while be flashing which determing of running normally ! * Version : 1.0.0 * Author : Leopul(COPYRIGHT 2025 - 2027 Leopul. All rights reserved.) * Complete : 2025-02-16 * Content : None * Note : None *********************************************************************************************************/ #include "Led.h" #include "gd32f30x_libopt.h" #include "main.h" static void ConfigLEDGPIO(void); #define USR_LED_RCU GPIOC #define USR_LED GPIO_PIN_6 static void ConfigLEDGPIO(void) { rcu_periph_clock_enable(RCU_GPIOC); gpio_init(USR_LED_RCU,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,USR_LED); gpio_bit_reset(USR_LED_RCU, USR_LED); } void InitLED(void) { ConfigLEDGPIO(); sts_data_t *data = get_sts(); data->led_flash = LEDFlicker2; } void LEDFlicker1(unsigned short cnt) { static unsigned short s_iCnt; s_iCnt++; if(s_iCnt >= cnt) { s_iCnt = 0; gpio_bit_write(GPIOC, USR_LED, 1-gpio_output_bit_get(GPIOC, USR_LED)); } } void LEDFlicker2(void) { static uint8_t flag = 0; if(flag) { gpio_bit_reset(USR_LED_RCU, USR_LED); flag = 0; }else { gpio_bit_set(USR_LED_RCU, USR_LED); flag = 1; } }