Keil搭建GD32F103标准库新工程

一、下载安装GD32F1芯片包

1.直接到官网下载

GD官网

下拉找到应用软件,点击箭头

找到GD32F1x0 series DFP Pack for Keil MDK 5.13 or later version(可能版本号会更新),点击右侧图标进行下载

2.这是我下载好的芯片包

链接: https://pan.baidu.com/s/1UHnMBLnyziIJkJGlY54ABg?pwd=1111

提取码: 1111 

下载好之后双击安装

他会自动选择keil路径下的芯片包路径进行安装,不需要手动选择安装路径,直接点击Next继续即可

点击Finish安装完成

其他型号的GD芯片也是类似的安装方法

二、下载例程备用

官网下载:GD官网

下拉找到开发板资料中的 GD32F10x Firmware Library,点击右侧的下载标识

解压,这个是解压完之后的路径

三、创建项目文件

先创建一个项目文件夹,我这里是 GD32-new-project

再创建6个文件夹,用于区分不同类型的文件,这几个文件夹可根据个人习惯设置,我一般习惯这么分

这些文件夹分别用来存放下面的内容

名称

作用
Doc存放工程相关的文档
Libraries存放库文件
Lisiting存放编译时候产生的C/汇编/链接的列表清单
Output存放编译产生的调试信息,Hex文件,等输出文件
Project用来存放工程文件
User存放用户文件,用户驱动

四、移植标准库

把GD官网解压后文件中的Firmware 中的四个文件夹全部复制到 新建项目文件夹Libraries中的

五、移植中断文件和系统时钟配置文件

移植解压文件夹Template中的5个文件到  新建项目User文件夹中

六、新建项目

1.新建工程

双击打开keil

点击project

点击new uvision project

选择项目保存路径,命名项目名字,选好之后点击保存

2.选择芯片型号

点击保存之后,会自动弹出芯片选择窗口,选择你使用的芯片型号,左边有小加号或者小减号,打开相同系列芯片列表,如果你没有GigaDevive这个选项,则说明你的芯片包没有安装成功,回到之前的地方重新安装

我使用的是GD32F103VET6,选好之后点击OK

会有个弹窗,直接关掉

3.设置文件分组

1.点击分组选项

2.是增加一个成员

3.是删除选中的成员

4.是选中的成员上移或者下移

5.项目名称

6.分组的名称

单击名称是选中,双击可以修改名称

把分组修改成这样

4.给分组添加文件

给BSP分组添加中断相关文件gd32f10x_it.c和  系统滴答定时器文件systick.c

1.点击BSP

2.点击add files

3.选择你新建文件夹中的USER文件夹,路径GD32-new-project\User

4.选中这两个文件,可以单个单个添加,也可以一次性选中添加

5.点击Add

添加完之后点击Close

同样的方式给FMW-CORE分组添加system_gd32f10x.c文件和startup_gd32f10x_md.s文件

添加system_gd32f10x.c文件的方法和上一步是一样的

system_gd32f10x.c文件的路径是:GD32-new-project\Libraries\CMSIS\GD\GD32F10x\Source

添加startup_gd32f10x_md.s文件,因为这个文件的文件后缀是.s,所以多了下图的步骤4,要选中显示所有文件才能显示该文件,导入步骤和前面的相似

startup_gd32f10x_md.s路径:GD32-new-project\Libraries\CMSIS\GD\GD32F10x\Source\ARM

同样的方式给组FMW_PERI添加库函数文件

因为不确定工程以后会用到那些外设,所以全部的库文件都添加进去,当然也可以选择只需要的外设

库函数的路径:GD32-new-project\Libraries\GD32F10x_standard_peripheral\Source

5.给工程添加main.c文件和main.h文件

新建文件

保存文件,保存到路径:GD32-new-project\User

命名为main.c

同样的方式创建main.h文件并保存

保存在GD32-new-project\User中,命名为main.h

前面相当于是把新创建了main.c文件,我们还需要把main.c文件同工程联系在一起,需要把它添加到APP组中

6.选择工程输出文件存放的位置

位置为:GD32-new-project\Output

7.选择工程列表文件的存放位置

位置为GD32-new-project\Listing

8.添加头文件.h的包含位置

添加好路径会显示在弹窗上面,一个路径可以多次添加


需要添加下面的路径

GD32-new-project\Libraries\CMSIS

GD32-new-project\Libraries\CMSIS\GD\GD32F10x\Include

GD32-new-project\Libraries\GD32F10x_standard_peripheral\Include

GD32-new-project\User

添加好的样子,添加完后关闭窗口

七、编写代码

给main.c写入点灯代码,验证工程是否建立成功

我的灯接口是PC13,你可以以选择你自己的灯操作

#include "gd32f10x.h"
#include "gd32f10x_libopt.h"

int main(void)
{
    rcu_periph_clock_enable(RCU_GPIOC); //打开GPIOC时钟
    gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13); //将PC13配置为推挽输出,最高支持50MHz
    gpio_bit_reset(GPIOC, GPIO_PIN_13); //将PC13置低电平,点亮LED
    
    
    rcu_periph_clock_enable(RCU_GPIOB); //打开GPIOB时钟
    gpio_init(GPIOB, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2); //将PB2配置为推挽输出,最高支持50MHz
    gpio_bit_reset(GPIOB, GPIO_PIN_2); //将PB2置低电平,点亮LED
    
    while(1)
    {
        
    }

}


点击编译,发现有一个报错和一个警告

上拉下面的消息提示框,双击警告的地方

发现是例程遗留的一个函数,选中注释即可

再次编译,现在是没有问题了,0警告,0错误

设置下载方式,选择你使用的下载方式,我用的是ST-LINK下载,

设置下载后复位,这样不用手动复位

点击下载

下载成功

八、创建工程成功

PB2灯和PC13灯亮,创建工程成功

到此,你学会了吗?(狗头),没学会再去看一遍吧

有问题,欢迎指正

创建好的工程百度网盘提取

通过网盘分享的文件:GD32-new-project
链接: https://pan.baidu.com/s/1Pb3-GBgJ4Eqv0bNFfkvQSg?pwd=1111 提取码: 1111 

### 如何在 Keil MDK 5 中GD32 标准库工程 要在 Keil MDK 5 中创建基于 GD32标准库工程,需按照以下方法完成环境配置和项目设置: #### 创建工程目录结构 为了便于管理,建议先建立清晰的文件夹结构。通常情况下,可以参考 STM32 工程的标准布局[^1],并稍作调整适应 GD32 需求。 ```plaintext template/ ├── CMSIS/ # 存放内核驱动程序和启动引导文件 │ ├── Core/ # Cortex-M 内核相关头文件 │ └── Device/ # GD32 设备相关的初始化代码 ├── FWLIB/ # 存放 GD32 官方提供的固件库函数 ├── Project/ # 存放工程文件 (.uvprojx 和 .uvoptx) └── User/ # 用户自定义代码 (如 main.c, config.h 等) ``` #### 使用 Keil 软件创建工程 打开 Keil 并通过菜单 `Project -> New µVision Project` 来创建一个工程。指定目标路径为之前准备好的 `Project` 文件夹,并命名该工程(例如命名为 `GD32_Project`)。完成后点击保存按钮[^2]。 #### 设置目标设备型号 当提示选择微控制器时,输入框中键入 “GD32”,从下拉列表里挑选具体的 MCU 型号(比如 GD32F103RCT6),随后按确认键继续。如果找不到对应器件,则可能需要安装额外的支持包或者更工具链版本[^3]。 #### 添加必要的分组与源码文件 回到主界面后可以看到默认生成了一个 Source Group 1 组织单元;将其重命名为更贴切的名字如 USER 或 Application Code 。接着依照需求增其他几个重要模块类别: - **CMSIS**: 包含核心级接口描述以及中断向量表定位; - **FWLIB**: 提供底层硬件抽象层实现细节; - **Startup**: 初始化堆栈指针及跳转至 C 应用入口点逻辑所在位置。 对于每个部分都需要手动复制相应的内容到各自归属的地方去。例如将官方发布的 firmware library 解压后的 src 下面所有的 c 文件拖拽进 FWLIB 分类之下等等。 最后记得检查链接器选项(Linker Settings),确保 Output Directory 指向正确的位置并且 Flash Algorithm 参数匹配所选处理器架构特性要求。 --- ### 示例代码片段展示 以下是简单的 LED 测试程序作为例子来验证整个流程是否成功执行完毕: ```c #include "gd32f1xx.h" int main(void){ rcu_periph_clock_enable(RCU_GPIOA); //使能GPIO端口时钟 gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8); while(1){ gpio_bit_set(GPIOA, GPIO_PIN_8); /* PA8 输出高电平 */ delay_1ms(500); /* 延迟一段时间 */ gpio_bit_reset(GPIOA, GPIO_PIN_8); /* PA8 输出低电平 */ delay_1ms(500); /* 再次延迟相同时间*/ } } ``` 上述代码实现了利用定时循环改变特定引脚状态从而点亮外部连接LED灯泡的效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值