2. 开发环境搭建:GD32开发板选型、Keil/IAR IDE安装与配置、GD32固件库导入、第一个LED点灯程序验证
说实话,做嵌入式开发这么多年,我见过太多人一上来就急着写代码,结果环境没配好,折腾半天连个灯都点不亮。这一章咱们就把地基打牢。你想想看,如果连开发环境都跑不顺,后面搞FOC算法、调PID参数,那简直是给自己挖坑。
我个人习惯是先把硬件选型定下来,再装IDE,最后导入固件库跑个点灯程序验证。这套流程走通了,后面的事就顺了。
2.1 GD32开发板选型建议
GD32系列芯片,说白了就是国产的ARM Cortex-M内核MCU。性能不输STM32,价格还便宜不少。我最早接触GD32是在一个电机项目上,当时客户要求降成本,我就试着把STM32F103换成了GD32F103,结果发现代码基本兼容,跑起来也没问题。
咱们这个课程主要用GD32F303系列。为什么选它?
- 主频高:120MHz,算力够用
- 硬件FOC支持:内置定时器适合生成PWM,ADC采样速度快
- 性价比好:比同级别的STM32G4便宜30%左右
我建议你直接买官方的GD32F303C-EVAL板,或者淘宝上那些第三方的核心板也行。核心板便宜,但要注意引出足够的PWM和ADC引脚。
| 开发板类型 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| 官方EVAL板 | 外设齐全,资料多 | 价格高(约300元) | 学习、原型验证 |
| 第三方核心板 | 便宜(约50元) | 引脚引出少,需自己焊接 | 成本敏感项目 |
| 自制板 | 完全定制 | 开发周期长 | 量产前验证 |
2.2 Keil MDK与IAR IDE安装与配置
IDE这块,我个人更习惯用Keil MDK,因为它的调试界面直观,而且GD32的固件库对Keil支持最好。当然,IAR也不错,编译优化更激进,代码体积能小一些。
2.2.1 Keil MDK安装步骤
- 下载安装包:去Keil官网下载MDK-ARM最新版(目前是V5.38)。
- 安装:一路Next就行,注意安装路径不要有中文。
- 破解:这个我就不多说了,你懂的。记得以管理员身份运行。
- 安装GD32支持包:打开Keil,点击
Pack Installer,搜索GD32F303,安装对应的Device Family Pack。
2.2.2 IAR EWARM安装步骤
- 下载:IAR官网下载EWARM,建议用8.50以上版本。
- 安装:同样,路径不要有中文。
- 注册:IAR的License管理比较严格,需要导入License文件。
- 添加GD32支持:IAR自带的芯片库可能没有GD32,需要手动添加。去GigaDevice官网下载IAR的插件包,解压后复制到IAR的安装目录下的
arm\config文件夹里。
说实话,IAR的配置比Keil麻烦一点。如果你刚开始学,我建议先用Keil,等后面熟悉了再尝试IAR。
2.3 GD32固件库导入
GD32的固件库,说白了就是官方给你写好的底层驱动。你不需要自己操作寄存器,直接调用函数就行。这玩意儿就像乐高积木,你只需要拼装,不用自己烧砖。
我最早用GD32的时候,固件库还不太完善,有些外设的驱动有bug。现在好多了,F303的固件库已经比较稳定了。
2.3.1 下载固件库
去GigaDevice官网,找到 GD32F30x_Firmware_Library,下载最新版。解压后,你会看到这样的目录结构:
GD32F30x_Firmware_Library/
├── Firmware/
│ ├── GD32F30x_standard_peripheral/
│ │ ├── inc/ // 头文件
│ │ └── src/ // 源文件
│ └── CMSIS/
│ ├── GD32F30x/ // 芯片相关文件
│ └── core/ // ARM核心文件
├── Examples/ // 示例代码
├── Template/ // 工程模板
└── Utilities/ // 工具
2.3.2 创建Keil工程并导入固件库
- 打开Keil,点击
Project -> New uVision Project,选择芯片型号GD32F303C8。 - 在弹出的
Manage Run-Time Environment窗口中,勾选CMSIS -> CORE和Device -> Startup。 - 在工程目录下新建
Firmware文件夹,把固件库里的inc和src文件夹复制进去。 - 在Keil中,右键工程名,选择
Manage Project Items,添加组Firmware,然后把src文件夹里的所有.c文件添加进去。 - 配置头文件路径:点击
Project -> Options for Target,在C/C++选项卡的Include Paths里添加Firmware\inc路径。
fatal error: 'gd32f30x.h' file not found。我刚开始学的时候,经常在这上面浪费半小时。
2.4 第一个LED点灯程序验证
好了,环境搭好了,固件库也导入了。现在咱们来写第一个程序——点灯。这就像学编程时的"Hello World",虽然简单,但能验证整个开发链路是否通畅。
2.4.1 硬件连接
以GD32F303C-EVAL板为例,板载的LED通常接在 PC13 引脚上(低电平点亮)。如果你用的是第三方核心板,需要自己查原理图。
2.4.2 编写代码
在工程中新建一个 main.c 文件,写入以下代码:
#include "gd32f30x.h"
void delay(void) {
uint32_t i;
for(i = 0; i < 500000; i++);
}
int main(void) {
// 使能GPIOC时钟
rcu_periph_clock_enable(RCU_GPIOC);
// 配置PC13为推挽输出
gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13);
while(1) {
// 点亮LED(低电平)
gpio_bit_reset(GPIOC, GPIO_PIN_13);
delay();
// 熄灭LED(高电平)
gpio_bit_set(GPIOC, GPIO_PIN_13);
delay();
}
}
2.4.3 编译与下载
- 点击
Build按钮,编译工程。如果没报错,你会看到0 Error(s), 0 Warning(s)。 - 用USB线连接开发板和电脑,安装好驱动(GD32的驱动在固件库的
Utilities文件夹里)。 - 点击
Download按钮,把程序烧录到芯片里。
Options for Target -> Debug,选择 CMSIS-DAP Debugger(EVAL板自带调试器)。我曾经有一次怎么都下载不进去,折腾了半天,结果发现是调试器选成了ST-Link……嗯,这种低级错误,犯过一次就不会再犯了。
2.4.4 验证结果
如果一切顺利,你会看到板载LED以大约1秒的频率闪烁。恭喜你,开发环境搭建成功了!
如果灯不亮,别急。按这个顺序排查:
- 检查电源:开发板上的电源指示灯亮了吗?
- 检查引脚:LED接的是PC13吗?
- 检查代码:延时函数的时间够长吗?
- 检查下载:程序真的烧进去了吗?
说实话,点灯这个环节,我见过太多人卡住。大部分问题都是粗心造成的。慢慢来,别着急。
2.5 本章知识结构图
下面这张图帮你理清本章的核心逻辑。从硬件选型到IDE配置,再到固件库导入和点灯验证,每一步都是环环相扣的。
这张图把本章的四个核心步骤串起来了。你跟着这个流程走,基本上不会出大问题。如果卡在哪一步,回头看看图,就知道问题出在哪个环节了。