led.h
#ifndef _BSP_LED_H
#define _BSP_LED_H
#include "gd32f4xx.h"
#include "systick.h"
#define RCU_LED1 RCU_GPIOE // 时钟
#define PORT_LED1 GPIOE // 端口
#define PIN_LED1 GPIO_PIN_3 // 引脚
#define RCU_LED2 RCU_GPIOD // 时钟
#define PORT_LED2 GPIOD // 端口
#define PIN_LED2 GPIO_PIN_7 // 引脚
#define RCU_LED3 RCU_GPIOG // 时钟
#define PORT_LED3 GPIOG // 端口
#define PIN_LED3 GPIO_PIN_3 // 引脚
#define RCU_LED4 RCU_GPIOA // 时钟
#define PORT_LED4 GPIOA // 端口
#define PIN_LED4 GPIO_PIN_5 // 引脚
void led_gpio_config(void); // led gpio引脚配置
#endif
led.c
#include "led1.h"
void led_gpio_config(void)
{
/* 使能时钟 LED1*/
rcu_periph_clock_enable(RCU_LED1);
/* 配置为输出模式 浮空模式 */
gpio_mode_set(PORT_LED1,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,PIN_LED1);
/* 配置为推挽输出 50MHZ */
gpio_output_options_set(PORT_LED1,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,PIN_LED1);
/* 使能时钟 LED2*/
rcu_periph_clock_enable(RCU_LED2);
/* 配置为输出模式 浮空模式 */
gpio_mode_set(PORT_LED2,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,PIN_LED2);
/* 配置为推挽输出 50MHZ */
gpio_output_options_set(PORT_LED2,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,PIN_LED2);
/* 使能时钟 LED3*/
rcu_periph_clock_enable(RCU_LED3);
/* 配置为输出模式 浮空模式 */
gpio_mode_set(PORT_LED3,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,PIN_LED3);
/* 配置为推挽输出 50MHZ */
gpio_output_options_set(PORT_LED3,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,PIN_LED3);
/* 使能时钟 LED4*/
rcu_periph_clock_enable(RCU_LED4);
/* 配置为输出模式 浮空模式 */
gpio_mode_set(PORT_LED4,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,PIN_LED4);
/* 配置为推挽输出 50MHZ */
gpio_output_options_set(PORT_LED4,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,PIN_LED4);
}
main.c
#include "gd32f4xx.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
#include "gd32f4xx_gpio.h"
#include "led1.h"
int main(void)
{
led_gpio_config();//led设置
systick_config();//启动定时器
while(1)
{
gpio_bit_write(PORT_LED1,PIN_LED1,SET); // 输出高电平
delay_1ms(1000); // 延时1s
gpio_bit_write(PORT_LED2,PIN_LED2,SET); // 输出高电平
delay_1ms(1000); // 延时1s
gpio_bit_write(PORT_LED3,PIN_LED3,SET); // 输出高电平
delay_1ms(1000); // 延时1s
gpio_bit_write(PORT_LED4,PIN_LED4,SET); // 输出高电平
delay_1ms(1000); // 延时1s
gpio_bit_write(PORT_LED1,PIN_LED1,RESET); // 输出低电平
gpio_bit_write(PORT_LED2,PIN_LED2,RESET); // 输出低电平
gpio_bit_write(PORT_LED3,PIN_LED3,RESET); // 输出低电平
gpio_bit_write(PORT_LED4,PIN_LED4,RESET); // 输出低电平
delay_1ms(1000); // 延时1s
}
}