【GD32F3x0应用笔记】

编程入门 行业动态 更新时间:2024-10-05 07:25:07

【GD32F3x0应用<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记】"/>

【GD32F3x0应用笔记】

第一章 GD32F330工程模版


文章目录

  • 第一章 GD32F330工程模版
  • 前言
  • 一、创建工程
  • 二、添加库文件
  • 三、工程配置
  • 四、修改代码
  • 五、点亮一个LED
  • 六、总结


前言

借着使用GD32芯片的机会,想写一写关于单片机方面的编程文章,把自己的使用经验分享给大家,如果喜欢,帮忙点个赞,你的支持会让我有更多动力写下去,感谢!


  • 准备如下工具:
    1、官网固件库 GD32F3x0 Firmware Library
    2、安装 MDK5 开发环境
    3、安装pack包,在我们下载的固件库里GD32F3x0_Demo_Suites_V2.2.0\GD32F3x0_AddOn\Keil\keil5

一、创建工程

  • 建立一个Template工程目录,并加入一下文件夹:
    APPS ----- 存放我们自己写的例程
    CORE ----- 存放核心文件
    FWLIB ----- 存放库文件
    Project ----- 存放工程文件
    SYSTEM ----- 自己喜好
    USER ----- 存放主函数中断函数
  • 使用Keil新建一个工程并保存在Project目录下,并建立和文件夹一样的Groups ,如下图,是我建好的工程,具体不展开说明,可参考原子哥的开发指南。

二、添加库文件

  • 添加CORE目录文件:
    core_cm4.h core_cm4_simd.h core_cmFunc.h core_cmInstr.h四个文件在GD32F3x0_Demo_Suites_V2.2.0\GD32F3x0_Firmware_Library\CMSIS目录下,
    startup_gd32f3x0.s文件在GD32F3x0_Demo_Suites_V2.2.0\GD32F3x0_Firmware_Library\CMSIS\GD\GD32F3x0\Source\ARM目录下,
    system_gd32f3x0.c文件在GD32F3x0_Demo_Suites_V2.2.0\GD32F3x0_Firmware_Library\CMSIS\GD\GD32F3x0\Source目录下,
    gd32f3x0.h system_gd32f3x0.h两个文件在GD32F3x0_Demo_Suites_V2.2.0\GD32F3x0_Firmware_Library\CMSIS\GD\GD32F3x0\Include目录下;
  • 添加FWLIB目录文件:
    直接将目录GD32F3x0_Demo_Suites_V2.2.0\GD32F3x0_Firmware_Library\GD32F3x0_standard_peripheral下的两个文件夹Include Source拷贝过来;
  • 添加USER目录文件:
    将目录GD32F3x0_Demo_Suites_V2.2.0\GD32310C_EVAL_Demo_Suites\Projects\01_GPIO_Running_LED中的gd32f3x0_it.c gd32f3x0_it.h gd32f3x0_libopt.h main.c拷贝过来,再自己建一个main.h文件。
  • 到处所以文件都准备好了,就可以添加到我们工程中了
  • 建好后的文件目录如下:
                

三、工程配置

  • 打开Keil的Options for Target对话框,在C/C++选项卡中Preprocessor Symbols中添加宏定义USE_STDPERIPH_DRIVER,GD32F330,在Include Paths中添加头文件路径,并勾选C99 Mode,这样后面写程序兼容性好些。
  • 在Debug选项卡中配好下载工具

四、修改代码

  • 直接点击编译,会报两个错误:

    第一个错误,把main.c里的代码全部删除,加入如下代码:
    第二个错误,把 gd32f3x_it.c里的#include "systick.h" 删除, 还要把最后的delay_decrement();删除。
#include "main.h"int main(void)
{while(1){}
}
  • 在main.h里添加如下代码,重新编译后没有错误,下面就可以写我们自己的驱动代码了。
#ifndef _MAIN_H_
#define _MAIN_H_#include "gd32f3x0.h"#endif

五、点亮一个LED

  • 硬件图纸,LED_G连接到单片机的PB0管脚上

  • 新建bsp_led.c 和bsp_led.h文件保存在我们的APPS目录中,同时添加到工程的APPS目录下

  • bsp_led.c代码如下:

#include "bsp_led.h"void LED_Init(void)
{//开启时钟rcu_periph_clock_enable(RCU_GPIOB);//配置IO上拉输出gpio_mode_set(GPIOB,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLUP,GPIO_PIN_0);gpio_output_options_set(GPIOB,GPIO_OTYPE_OD,GPIO_OSPEED_2MHZ,GPIO_PIN_0);//设置IO输出高电平gpio_bit_set(GPIOB,GPIO_PIN_0);
}
  • bsp_led.h代码如下:
#ifndef _BSP_LED_H_
#define _BSP_LED_H_#include "main.h"
//头文件声明
void LED_Init(void);#endif
  • main.c代码如下,记得在main.h里添加bsp_led.h头文件:
#include "main.h"int main(void)
{//LED GPIO初始化LED_Init();while(1){//输出低电平,点亮LEDgpio_bit_reset(GPIOB,GPIO_PIN_0);}
}
  • 重新编译,如果没用错误就可以烧录到我们的单片机中。

六、总结

本章内容介绍了GD32F330工程模版的建立,并通过简单的代码来点亮我们的LED,为日后编写做好模版,不用每次都去建立工程文件,良好的工程目录有助于日后项目的管理文件分类,供大家参考。
GD32F3x0工程模版

更多推荐

【GD32F3x0应用笔记】

本文发布于:2024-02-13 21:10:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760518.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!