笔记】"/>
【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应用笔记】
发布评论