前言

我在前面的博客中分享了GD32F470的vscode+Embedded IDE环境配置,当时是使用的官方固件库的keil模板直接新建,导致项目结构复杂冗余。遂参照Embedded IDE内置模板STM32项目,新建GD32F470项目工程。

添加文件

首先新建一个内置的STM32F103的模板项目,用于参照。

新开一个vscode窗口,新建一个空项目。

对比两侧文件,找到差异,我们所需文件要在固件库中找。

在官网下载GD32F4xx的固件库,地址在兆易创新GigaDevice-资料下载兆易创新GD32 MCU

hal文件夹

新建hal文件夹,找到GD32F4xx_standard_peripheral,放入hal文件夹。

找到gd32f4xx.h,system_gd32f4xx.h,system_gd32f4xx.c,放入hal文件夹的GD32F4xx_standard_peripheral文件夹。

lib文件夹

新建lib文件夹,在lib文件夹下新建cmsis文件夹,找到如图四个文件,放入cmsis文件夹。

src文件夹

新建src文件夹,在src文件夹下新建main.c,并写入main函数。

在固件库给的样例中找到这三个文件,放入src文件夹。

找到gd32f470的启动文件,放入src文件夹。

.ld文件

找到与自己芯片型号相适配的.ld文件,放入项目的文件夹。

对比检查

二者文件基本类似。

修改Embedded IDE设置

在添加完文件之后,需要修改EIDE的过程设置,包括资源文件添加,头文件包含等等。

添加hal文件夹和src文件夹。(都是选择Normal Folder添加)

CPU类型改为Cortex-M4。

添加链接文件的路径。

添加头文件包含。

添加预处理定义。

由于我们是从模板中拿的中断文件,所以记得把这两个.h包含给删掉。

这两行也删掉。

点击左下角的build构建项目,发现构建成功。

烧录与调试

烧录

修改烧录设置如图。

连接板子,点击左下角的Falsh,烧录,发现烧录成功。

调试

在插件市场下载安装Cortex-Debug。

修改调试器为Cortex-Debug。

点击右上角的调试按钮。

可以进入调试。

LED闪烁实验

修改main.c的代码为:

#include "gd32f4xx.h"

/* 简单软件延时(粗略延时,可根据需要调整循环次数) */
static void delay_soft(uint32_t count) {
    for (volatile uint32_t i = 0; i < count; i++);
}

int main(void) {
    /* 使能 GPIOE 时钟 */
    rcu_periph_clock_enable(RCU_GPIOE);

    /* 配置 PE2 为推挽输出,50MHz 速度 */
    gpio_mode_set(GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_2);
    gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);

    /* 主循环 */
    while (1) {
        /* PE2 输出低电平(LED 亮,若 LED 为低电平有效) */
        gpio_bit_reset(GPIOE, GPIO_PIN_2);
        delay_soft(5000000);  /* 延时一段时间 */

        /* PE2 输出高电平(LED 灭) */
        gpio_bit_set(GPIOE, GPIO_PIN_2);
        delay_soft(5000000);
    }
}

构建,烧录,发现PE2端口连接的LED开始闪烁。

也可以进入调试。

写在后面

新建GD32F4项目工程主要难点在于建立合理的项目结构和添加完整的文件。我们可以仿照Embedded IDE内置的STM32F1的项目来建立,避免项目结构混乱和必要文件缺失。还有经典的那句话:不要止步于配置环境,真正地深入学习下去吧。

更多推荐