GD32F470ZKT6单片机开发板入门学习(一)Keil工程搭建
前言
GD32F470ZKT6 是兆易创新(GigaDevice)推出的一款基于 ARM Cortex-M4 内核的高性能微控制器,主频高达 240MHz,内置 1MB Flash 和 256KB SRAM,并集成了丰富的外设资源。本系列教程旨在帮助初学者快速上手 GD32F470ZKT6 开发板,从最基础的开发环境搭建开始,逐步深入掌握其应用开发。
本文作为系列的第一篇,将详细介绍如何在 Keil MDK(Microcontroller Development Kit)环境下搭建 GD32F470ZKT6 的工程。
一、准备工作
1.1 硬件准备
- GD32F470ZKT6 开发板(或核心板)一块
- USB 数据线(用于供电和程序下载/调试)
- 一台 Windows 电脑
1.2 软件准备
- Keil MDK-ARM:版本建议 V5.30 或以上。可从 ARM 官网或 Keil 官网下载安装。
- GD32F4xx Device Family Pack (DFP):GD32 的器件支持包。可通过 Keil 的 Pack Installer 在线安装,或从 GigaDevice 官网下载后手动安装。
- GD32F4xx Firmware Library (固件库):包含芯片外设驱动、示例工程等。从 GigaDevice 官网下载。
1.3 文档支持
- 《GD32F4xx_用户手册_Rev3.3》:这是 GD32F4xx 系列微控制器的官方核心参考文档。手册详细记录了该系列芯片的完整资源、功能特性、寄存器定义及操作指南,是开发过程中不可或缺的权威资料。主要内容包括: 在开发过程中,遇到任何硬件功能或寄存器配置问题,都应首先查阅此手册获取最准确的技术细节。
- 芯片概述:介绍 GD32F4xx 系列的产品线、内核特性、性能参数和封装信息。
- 存储器架构:详细说明 Flash、SRAM、备份寄存器的地址映射和访问方式。
- 系统与外设:深入讲解时钟系统(RCU)、电源管理、GPIO、中断控制器(NVIC)等所有外设模块的功能、寄存器配置和编程模型。
- 通信接口:涵盖 USART、I2C、SPI、CAN、USB、以太网等通信协议控制器的使用方法。
- 模拟功能:包括 ADC、DAC、比较器等模块的配置和校准说明。
- 定时器与高级控制:详细描述基本定时器、高级定时器、PWM、输入捕获等功能的操作。
- 附录与电气特性:提供引脚定义、封装尺寸、电气参数、勘误表等实用信息
- GD32F4xx系列MCU中文用户手册
https://download.gigadevice.com/User_Manual/GD32F4xx_%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C_Rev3.3.pdf
- GD32F4xx系列MCU中文用户手册
- 《GD32F470xx_Datasheet_Rev2.2》:这是 GD32F470xx 系列芯片的官方数据手册。它提供了该系列芯片的详细电气特性、引脚定义、封装信息、工作条件、直流/交流参数以及订购信息等关键硬件规格。数据手册是进行硬件设计(如原理图绘制、PCB 布局、电源设计、外设选型)时必须参考的核心文档,用于确保芯片在目标应用中的可靠运行。
- GD32F470xx_Datasheet_Rev2.2.pdf
https://download.gigadevice.com/Datasheet/GD32F470xx_Datasheet_Rev2.2.pdf
- GD32F470xx_Datasheet_Rev2.2.pdf
二、安装 GD32 器件支持包
打开 Keil MDK,点击菜单栏Pack Installer图标(或通过Project -> Manage -> Pack Installer打开)。
- 在Packs标签页中,搜索 “GigaDevice”。
- 找到并展开GigaDevice::GD32F4xx_DFP。
- 选择适合你 Keil 版本的最新版本,点击Install进行安装。
- 安装完成后,关闭 Pack Installer。
至此,Keil 已能识别并支持 GD32F4xx 系列芯片。
三、创建第一个 Keil 工程
3.1 创建工程目录
1.新建文件夹,命令为1_FD32F470_LED,用来保存新创建的工程,如图所示。
2.在该文件夹下创建6个文件夹,分别命名为:
- Project:放Keil工程文件,编译文件,烧录文件等。
- Firmware:放ARM内核文件,标准外设库文件等。
- Hareware:放开发板的硬件配置文件。
- App:放应用层文件。
- User:放main函数,gd32f4xx_it文件,systick文件。
- Doc:放readme.txt文件,工程说明文件。
3.将GD32F4xx_Firmware_Library_V3.0.0\ GD32F4xx_Firmware_Library\Firmware文件夹下的内容全部拷贝到新建目录的Firmware下,如图所示。
4.将GD32F4xx_Firmware_Library_V3.0.0\GD32F4xx_Firmware_Library\ Template文件夹的除工程文件夹、readme.txt文件不拷贝之外全拷贝到新建的 User 文件夹下,如图所示。
5.在Doc文件夹下新建一个readme.txt文件,如图所示。
3.2 新建Keil工程
1.打开 Keil,点击Project -> New uVision Project...。
2.选择刚才创建文件夹下的Project作为工程目录,并为工程命名为GD32F470_LED,如图所示 。
3.在弹出的Select Device for Target对话框中,在搜索框输入 “GD32F470”,选择GigaDevice -> GD32F470->GD32F470ZK,点击OK。
4.接下来会弹出Manage Run-Time Environment对话框,暂时先点击Cancel(我们后续手动添加文件)。
3.3 创建分组并添加源文件
1.在 Keil 的Project窗口中,右键点击Target 1,选择Manage Project Items...。
2.在Project Targets标签页,可以重命名 Target(例如改为 “GD32F470”)。
3.新建分组,点击新建按钮,然后输入要新建的分组名,如图4-7-2所示。
4.创建User分组之后点击Add Files,找到当前文件夹下的User,双击打开后,将里面的gd32f4xx_it文件、main文件、systick文件选中,点击Add就可以添加文件,如图所示。
5.创建Firmware分组之后点击Add Files,找到当前文件夹下的Firmware/GD32F4xx_standard_
peripheral/Source/目录下,将里面的所有源文件选中,点击Add就可以添加文件,如图所示。
6.新建CMSIS分组,添加startup_gd32f450_470.s启动文件(新建工程的Firmware/CMSIS/GD/GD32F4xx/Source/ARM/),和system_gd32f4xx.c文件(新建工程 的Firmware/CMSIS/GD/GD32F4xx/Source/),注意,添加启动文件需要勾选文件类型为All files(*.),因为启动文件是以.s结尾。如图所示。
7.新建Doc分组,然后添加readme.txt文件(新建工程的Doc/),文件类型要选择 All files,不然会不显示,如图所示。
8.新建Hardware分组,暂时不添加任何文件,在后续编写代码中才添加。
9.新建App分组,暂时不添加任何文件。
全部新建分组完成,如图所示。(可以按照自己的习惯自行调整分组的顺序)
10.新建完成点击ok之后,工程目录如图所示。
11.修改工程代码
打开main.c文件,删除一些不必要的代码,剩余部分如图所示。
打开gd32f4xx_it.c文件,拉到最后面,然后删掉Systick_Handler下面的代码。 剩余部分如图所示。
3.3 添加宏
添加宏是为了去使能这个芯片的头文件,这个宏在GD32f4xx.h中有定义,添加头文件路径是为了使编译器能够去寻找到对应的头文件。
1.点击工具栏的魔术棒图标(Options for Target),打开配置对话框。
2.在C/C++ (AC6)标签页的Define框中填写USE_STDPERIPH_DRIVER,GD32F470。
3.4 配置头文件路径
1.点击工具栏的魔术棒图标(Options for Target),打开配置对话框。
2.在C/C++ (AC6)标签页的Include Paths 框中添加路径: (具体的路径根据实际情况而定)
3.5配置工程
1.勾选使用UseMicroLIB
这是一个Keil自带的简易的库,一般在串口进行重定向的时候使用。 点击Optionsfor target(魔术棒),在target选项卡下,然后勾选UseMicroLIB,如图所示。
2.修改ARMCompiler版本
点击Optionsfor target(魔术棒),在Target选项卡下,修改ARMCompiler为Userdefault compiler version 5,如图所示。
3.勾选生成hex文件
点击Optionsfor target(魔术棒),在Output选项卡下,勾选CreateHEXFile,如图所示。
3.6 配置调试器
在Debug标签页:
- 选择你使用的调试器(如 ST-Link, J-Link, CMSIS-DAP 等),我这里的开发板使用的是CMSIS-DAP,所以下面以CMSIS-DAP进行操作设置。
- 点击Optionsfor target(魔术棒),在Dubug选项卡下,选择CMSIS-DAP Debugger,如图所示。
- 点击Settings,确认 SWD 接口和芯片识别正确。
3.7编译
完成上述操作后,点击编译,如图所示。
编译结果,0个错误,0个警告,生成Hex文件,至此,工程模板创建完成如图所示。
四、常见问题与解决
- 编译错误 “undefined symbol SystemCoreClock”:检查是否添加了
system_gd32f4xx.c文件,并且头文件路径包含正确。 - 无法识别芯片/下载失败:
- 确认调试器连接和驱动安装正确。
- 在 Debug 配置中检查 SWD 时钟频率是否过高,可适当调低(如 1MHz)。
- 检查开发板供电是否正常。
总结
本文完成了 GD32F470ZKT6 开发板在 Keil MDK 环境下的第一个工程搭建。通过这个过程,你掌握了:
- Keil 中安装 GD32 器件支持包。
- 创建工程、添加固件库文件、配置头文件路径和调试器。
这是嵌入式开发的第一步。在后续文章中,我们将探索更多外设(如 LED、USART、TIMER、ADC 等)的使用,并介绍更高效的开发方式(如使用 HAL 库或 RTOS)。
祝你学习顺利!