【GD32单片机】GD32工程构建,快速上手GD32

以GD32F350为例

之前在学校接触最多的是STM32单片机,但出来工作后发现,GD32或MM32单片机却是经常能接触到的,虽然学习资料和生态没有STM32好,但基本芯片内外设资源却差不多,开发起来大同小异。

在开始构建工程之前需要去GD32的官网下载一些资料;

打开官网 https://www.gigadevice.com.cn/

官网

选择【产品中心 】-【MCU】 - 【Arm Cortex-4】,在搜索框输入GD32F350,然后选择产品型号,比如我这里选择GD32F350RBT6,然后下载数据手册和用户手册,除此之外还要下载官网提供关于这款芯片的开发板资料,点击右侧侧栏【MCU资源下载中心】。

打开资料下载中心 https://www.gd32mcu.com/cn/download

进入MCU资源下载中心

进入页面后选中【GD32F3 MCU】,然后下载开发板资料和应用软件(也就是pack包),至此资料下载完成。

开发板资料下载

pack包下载

安装开发环境

本人使用的是keil5的MDK-ARM版本。

  1. 安装pack包 ,构建工程之前需要安装pack包,打开开下载的GD32F3x0_Addon_V3.0.3文件夹,文件夹目录下有IAR和Keil两种安装环境,选择Keil目录下的keil5,可以看到GigaDevice.GD32F3x0_DFP.3.0.2.pack,双击安装即可;
  2. 新建工程文件夹 ,在桌面或其他地方新建一个文件夹,命名为GD32F3x0_Demo(当然你也可以按照你的想法来命名),在新建的文件夹下再建一个名为MDK-ARM的文件夹,用来存储keil工程文件;
  3. 新建keil工程 ,打开keil开发工具,新建工程(Project - New uvision Project…),在弹出串口下选择创建路径,创建路径选择前面创建好的路径C:\Users\xxx\Desktop\GD32F3x0_Demo\MDK-ARM,给工程命名为project(可根据实际情况命名),点击【保存】后会弹出Select Device for Target 'Target 1"…窗口,我的工程芯片是GD32F350RB,然后点击【OK】即可。
    芯片选择

添加固件

前面下载的开发板资料(GD32F3x0_Firmware_Library文件夹)结构需要先了解一下。

资料结构

固件库里面的结构如下:

固件库结构

GD32350R_EVAL_Demo_Suites的结构如下:

例程结构

了解完开发板资料结构后就可以着手构建和完善项目结构了:

  1. 添加固件库 ,将GD32F3x0_Demo_Suites_V2.2.3下的GD32F3x0_Firmware_Library固件库复制到我们新建的项目工程下;
  2. 添加用户目录及文件 ,在我们新建的项目下创建User目录,然后随便打开一个开发板例程项目(如:GD32350R_EVAL_Demo_Suites\Projects\01_GPIO_Running_LED),将gd32f3x0_it.c、gd32f3x0_it.h、gd32f3x0_libopt.h和main.c复制到我们创建的项目下的User目录下;
    移植文件
  3. 添加Driver目录 ,在我们的项目工程(GD32F3x0_Demo)下在创建一个Driver文件夹,里面用来存放自己写的驱动程序。

构建keil工程

做好前面步骤,就可以开始keil了。

Alt

  1. 项目管理 ,打开管理项目项(Manage Project Items),创建各类工程管理组,对工程文件进行分类、划分。
    项目管理

如何向组内添加工程文件呢? 选中需要添加文件的组,然后右键选择将现有文件添加到组(Add Existing Files to Group),本工程需要在每个组下添加的工程文件如下:

Usergd32f3x0_it.c、main.c
Driver根据自己写的驱动程序进行添加,本工程还没写驱动,暂时不需要添加
GD32F3x0_LibGD32F3x0_standard_peripheral\Source下所有*.c文件
STARTUPsystem_gd32f3x0.c、startup_gd32f3x0.s
  1. 工程选项管理 ,点击魔术棒(Options for Target …),Target下的ARM Compiler选择版本5;
    选项管理

在C/C++选项的Define添加一些宏和学习语言和代码块选项:

USE_STDPERIPH_DRIVER,GD32F350

添加全局宏

在C/C++选项的Include Paths中添加*.h文件的路径,让编译器能够找到,然后点击【OK】即可。

在这里插入图片描述

修改代码

  1. 修改main.c ,代码如下:
#include "gd32f3x0.h"

int main(void)
{

    while(1)
	{
		
    }
}
  1. gd32f3x0_it.h ,代码如下:
#include "gd32f3x0_it.h"

/*!
    \brief      this function handles NMI exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void NMI_Handler(void)
{
}

/*!
    \brief      this function handles HardFault exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void HardFault_Handler(void)
{
    /* if Hard Fault exception occurs, go to infinite loop */
    while(1){
    }
}

/*!
    \brief      this function handles MemManage exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void MemManage_Handler(void)
{
    /* if Memory Manage exception occurs, go to infinite loop */
    while (1){
    }
}

/*!
    \brief      this function handles BusFault exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void BusFault_Handler(void)
{
    /* if Bus Fault exception occurs, go to infinite loop */
    while (1){
    }
}

/*!
    \brief      this function handles UsageFault exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void UsageFault_Handler(void)
{
    /* if Usage Fault exception occurs, go to infinite loop */
    while(1){
    }
}

/*!
    \brief      this function handles SVC exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void SVC_Handler(void)
{
}

/*!
    \brief      this function handles DebugMon exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void DebugMon_Handler(void)
{
}

/*!
    \brief      this function handles PendSV exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void PendSV_Handler(void)
{
}

/*!
    \brief      this function handles SysTick exception
    \param[in]  none
    \param[out] none
    \retval     none
*/
void SysTick_Handler(void)
{
	
}

构建结果

构建结果 0 错误, 0 警告,项目构建完成。
构建结果

  • 10
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值