GD32F105RBT6 Keil工程模板搭建全攻略(附LED闪烁调试)

张开发
2026/4/19 19:51:10 15 分钟阅读

分享文章

GD32F105RBT6 Keil工程模板搭建全攻略(附LED闪烁调试)
GD32F105RBT6 Keil工程模板搭建实战指南第一次接触GD32系列MCU时最让人头疼的就是如何快速搭建一个可靠的开发环境。作为国产MCU中的佼佼者GD32F105RBT6以其出色的性能和兼容性赢得了不少工程师的青睐。本文将手把手带你完成从零开始的Keil工程搭建最后还会通过一个LED闪烁实例验证工程是否正常工作。1. 开发环境准备在开始之前我们需要准备好所有必要的工具和文件。不同于STM32丰富的生态系统GD32的官方资源相对集中需要特别注意获取正确的开发包。首先确保你已经安装了Keil MDK开发环境建议使用5.25以上版本。接下来需要获取GD32F10x系列的标准外设库和器件支持包访问GD32官网下载中心https://www.gd32mcu.com/cn/download搜索并下载GD32F10x_Demo_Suites_V2.2.0完整开发包同时下载GigaDevice.GD32F10x_DFP.2.0.2.pack器件支持包下载完成后先安装器件支持包。双击.pack文件Keil会自动识别并完成安装。验证安装是否成功# 在Keil中新建工程时应该能在Device列表中找到GD32F105RB型号开发包解压后的目录结构如下GD32F10x_Demo_Suites_V2.2.0/ ├── GD32F10x_AddOn ├── GD32F10x_Firmware_Library # 标准外设库 └── Projects # 示例工程特别提醒GD32F105属于互联型(Connectivity Line)产品与基础型(F103系列)在启动文件和配置上有差异务必使用对应的文件。2. 工程目录结构设计一个良好的工程目录结构能极大提高开发效率。我推荐采用模块化设计便于后期功能扩展和维护。以下是经过多个项目验证的目录方案gd32f105_project/ ├── Core/ # 内核相关文件 ├── Drivers/ # 外设驱动 ├── GD32F10x_FWLib/ # 标准外设库 ├── Project/ # Keil工程文件 │ ├── Output/ # 编译输出 │ └── User/ # 用户代码 └── System/ # 系统级配置具体操作步骤新建工程根目录gd32f105_project从开发包复制以下文件CMSIS文件夹 →Core/GD32F10x_standard_peripheral内容 →GD32F10x_FWLib/特别注意启动文件的选择互联型号使用startup_gd32f10x_cl.s位置在CMSIS/GD/GD32F10x/Source/ARM/提示创建目录时建议使用英文路径避免某些工具链可能出现的编码问题。3. Keil工程详细配置打开Keil MDK点击Project→New μVision Project选择刚才创建的Project目录命名为gd32f105_demo。3.1 器件选择与组配置在Device选择界面找到GigaDevice→GD32F10x系列→GD32F105RB。创建以下组(Group)结构Target 1 ├── CMSIS ├── FWLib ├── User └── Startup向各组添加对应文件1. **Startup组**: - 添加startup_gd32f10x_cl.s 2. **CMSIS组**: - system_gd32f10x.c - gd32f10x.h 3. **FWLib组**: - 选择必要的外设库.c文件 - 初期只需添加gd32f10x_gpio.c和gd32f10x_rcu.c 4. **User组**: - 新建main.c3.2 关键工程选项设置进入Options for Target配置界面有几个关键设置Output选项卡:勾选Create HEX File设置输出目录为Project/OutputListing选项卡:设置列表文件输出目录C/C选项卡:添加预定义宏USE_STDPERIPH_DRIVER,GD32F10X_CL包含路径设置../Core ../GD32F10x_FWLib ../UserDebug选项卡:根据你的调试器选择如ST-Link、J-Link等勾选Run to main()Utilities选项卡:设置生成.bin文件的指令fromelf --bin --output $LL.bin #L4. 基础代码实现在main.c中实现最基本的系统初始化和LED闪烁功能。首先确保硬件连接正确LED接在PC13开发板常用配置8MHz外部晶振HXTAL#include gd32f10x.h #include systick.h void GPIO_Config(void) { rcu_periph_clock_enable(RCU_GPIOC); gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_13); } int main(void) { systick_config(); // 初始化SysTick GPIO_Config(); // 配置GPIO while(1){ gpio_bit_write(GPIOC, GPIO_PIN_13, SET); delay_1ms(500); gpio_bit_write(GPIOC, GPIO_PIN_13, RESET); delay_1ms(500); } }时钟配置是GD32开发中最容易出问题的部分。在system_gd32f10x.c中修改如下#define __SYSTEM_CLOCK_108M_PLL_HXTAL (uint32_t)(108000000) /* 修改系统时钟初始化配置 */ static void system_clock_108m_hxtal(void) { /* 具体参数根据实际晶振调整 */ rcu_osci_on(RCU_HXTAL); rcu_osci_stab_wait(RCU_HXTAL); rcu_ahb_clock_config(RCU_AHB_CKSYS_DIV1); rcu_apb2_clock_config(RCU_APB2_CKAHB_DIV1); rcu_apb1_clock_config(RCU_APB1_CKAHB_DIV2); rcu_pll_config(RCU_PLLSRC_HXTAL, 25, 216, 2); rcu_osci_on(RCU_PLL_CK); rcu_osci_stab_wait(RCU_PLL_CK); rcu_ck_sys_config(RCU_CKSYSSRC_PLL); SystemCoreClock __SYSTEM_CLOCK_108M_PLL_HXTAL; }5. 调试与验证完成上述步骤后点击Rebuild编译工程。常见问题及解决方法问题现象可能原因解决方案找不到头文件路径配置错误检查C/C选项卡中的包含路径链接错误缺少必要文件确认所有.c文件已添加到对应组LED不闪烁时钟配置错误检查system_clock_108m_hxtal配置无法下载调试器配置不当确认Utilities和Debug选项卡设置成功下载程序后你应该能看到LED以1Hz频率稳定闪烁。如果遇到异常可以检查硬件连接使用Keil的调试模式单步执行测量PC13引脚波形验证SysTick中断是否正常工作注意GD32的GPIO速度配置会影响输出波形质量对于LED等简单外设GPIO_OSPEED_50MHZ已经足够。

更多文章