赞
踩
之前在学校接触最多的是STM32单片机,但出来工作后发现,GD32或MM32单片机却是经常能接触到的,虽然学习资料和生态没有STM32好,但基本芯片内外设资源却差不多,开发起来大同小异。
在开始构建工程之前需要去GD32的官网下载一些资料;
打开官网 https://www.gigadevice.com.cn/
选择【产品中心 】-【MCU】 - 【Arm Cortex-4】,在搜索框输入GD32F350,然后选择产品型号,比如我这里选择GD32F350RBT6,然后下载数据手册和用户手册,除此之外还要下载官网提供关于这款芯片的开发板资料,点击右侧侧栏【MCU资源下载中心】。
打开资料下载中心 https://www.gd32mcu.com/cn/download
进入页面后选中【GD32F3 MCU】,然后下载开发板资料和应用软件(也就是pack包),至此资料下载完成。
本人使用的是keil5的MDK-ARM版本。
前面下载的开发板资料(GD32F3x0_Firmware_Library文件夹)结构需要先了解一下。
固件库里面的结构如下:
GD32350R_EVAL_Demo_Suites的结构如下:
了解完开发板资料结构后就可以着手构建和完善项目结构了:
做好前面步骤,就可以开始keil了。
如何向组内添加工程文件呢? 选中需要添加文件的组,然后右键选择将现有文件添加到组(Add Existing Files to Group),本工程需要在每个组下添加的工程文件如下:
User | gd32f3x0_it.c、main.c |
---|---|
Driver | 根据自己写的驱动程序进行添加,本工程还没写驱动,暂时不需要添加 |
GD32F3x0_Lib | GD32F3x0_standard_peripheral\Source下所有*.c文件 |
STARTUP | system_gd32f3x0.c、startup_gd32f3x0.s |
在C/C++选项的Define添加一些宏和学习语言和代码块选项:
USE_STDPERIPH_DRIVER,GD32F350
在C/C++选项的Include Paths中添加*.h文件的路径,让编译器能够找到,然后点击【OK】即可。
#include "gd32f3x0.h"
int main(void)
{
while(1)
{
}
}
#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 警告,项目构建完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。