一、GD32F407VET6点亮一个LED灯
零、所需文件及环境
1、上一章新建好的工程模版
2、编译环境MDK5(KEIL5)
3、一个GD32F07VET6硬件
4、一个下载器j-link 或 st-link等
5.一个官方参考文件GD32F4xx_Firmware_Library_V3.2.0
6.代码编辑器 Notepad++ (可以不要 用记事本也能编译 都是习惯的问题
壹、复制工程模版
1.1 将新建好的工程模版复制一份并改一个自己喜欢的名字
1.2 进入USER/BSP文件夹下 创建一个BSP_LED文件夹
1.3 进入Project文件夹下 打开工程 如果没有修改过点.uvprojx结尾文件
1.4 打开工程后点两下新建文件
1.5 保存新建立的两个文件 注意文件保存路径 文件名添加前缀bsp后期文件太多方便管理
1.7 添加头文件路径 一定要点到根目录下 点两次ok 退出
贰、编写BSP_LED.c与BSP_LED.h代码
2.1 编写BSP_LED.h 所有自己写的.c和.h 记得多敲两行空行 不然会报警告
#ifndef __BSP_LED_H
#define __BSP_LED_H
#include "gd32f4xx.h"
#include
extern void LED_Init(void);
extern void LED_Open(void);
extern void LED_Close(void);
#endif
2.2 编写BSP_LED.c 所有自己写的.c和.h 记得多敲两行空行 不然会报警告
#include "BSP_LED.h"
void LED_Init(void)
{
/* enable the led clock */
rcu_periph_clock_enable(RCU_GPIOE);
/* configure led GPIO port */
gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,GPIO_PIN_1);
gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_1);
gpio_bit_set(GPIOE,GPIO_PIN_1);
}
void LED_Open(void)
{
gpio_bit_reset(GPIOE,GPIO_PIN_1);
}
void LED_Close(void)
{
gpio_bit_set(GPIOE,GPIO_PIN_1);
}
2.3 你要问我为啥这个芯片初始化时这样写呢,官方的参考例程就在这儿,打开观摩观摩
2.3 将BSP_LED.c文件添加至工程 点那个三个颜色的品字形图标
肆、编写main函数
#include "gd32f4xx.h"
#include "systick.h"
#include
#include "BSP_LED.h"
int main(void)
{
// gd_eval_led_init(LED1);
systick_config();
LED_Init();
while(1) {
LED_Open();
delay_1ms(500);
LED_Close();
delay_1ms(500);
}
}
伍、配置下载器
5.1 如果最开始的时候修改过工程名 则需要重新配置一下下载器 这也是我不爱修改工程名的原因
5.2 选择下载器没j-link 自己是啥选择自己的下载器
陆、编译
6.1 点击这俩都可以
柒、下载
7.1 下载运行 灯在哪里布林布林的闪,观测好像是慢了一倍
7.2 找到这个文件把这个屏蔽打开外部8M晶振,主频168M。自己外部焊的啥就把哪一个打开。再次编译下载感觉好像正常了,闪烁频率为500ms了。又没示波器实际我也不知道,到时候串口通讯的时候再看吧。