文件介绍 上一小结我们已经成功安装keil 5编译器,并且载入了GD32F10x的板级支持包,完成了编译下载等任务,这节我们继续介绍一下官方提供的固件库的文件结构。 “Docs”文件夹里面存放的是本文件的说明介绍,方便我们更好去使用; “Example”文件夹里面存放的是每个外设的参考例程; “Firmware”文件夹里面存放的是固件库的核心文件; “Template”文件夹里面存放的是官方的固件库移植示例; “Utilities”文件夹里面存放的是一些第三方固件驱动。 新建工程 选择工程保存路径: 选择本项目配套代码的芯片GD32F103RCT6。 这里是在线添加库文件,我们本小结等会手动添加库文件,在这里我们点击右上角关闭。 添加组文件夹在本工程新建的文件夹中添加6个组文件夹,用来存放 Doc工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等 HARDWARE 用户自定义外设文件放在该文件夹中(本工程暂时用不到为空) Libraries startup:startup_gd32f10x_hd.s(根据芯片Flash容量选择),CMSIS, Fwlib: GD32F10x_standard_peripheral\Source 文件夹下的全部 C 文件,即固件库 Project 工程存放目录 System 放置系统文件(本工程用不上暂时为空) User 用户编写的文件:main.c:main 函数文件,暂时为空;gd32f10x_it.c:跟中断有关的函数都放这个文件,暂时为空 startup_gd32f10x_hd.s 启动文件, 系统上电后第一个运行的程序,由汇编语言编写,C编程用的比较 少, 可 暂 时 不 管, 这 个 文 件 从 固 件 库 里 面 拷 贝而 来, 由 官 方 提 供。 GD32f10x.h 用户手动新建,用于存放寄存器映射的代码,暂时为空。 main.c 用户手动新建,用于存放 main 函数,暂时为空。 CMSIS 添加从官方下载的固件库中GD32F10x_Firmware_Library_V2.2.4\Firnware\CMSIS\GD\GD32F10x\Source的system_gd32f10x.c文件 点击文件管理 添加组文件夹: 几个文件夹前面都有解释 下面三个文件需要包含在文件夹Libraries中 CMSIS 中添加从官方下载的固件库中 路径修改前 GD32F10x_Firmware_Library_V2.2.4\Firmware\CMSIS\GD\GD32F10x\Source的system_gd32f10x.c文件 路径修改后 \Libraries\CMSIS\GD\GD32F10x\Source STARTUP中添加从官方下载的固件库中 路径修改前 GD32F10x_Firmware_Library_V2.2.4\Firmware\CMSIS\GD\GD32F10x\Source\ARM的根据芯片容量选择对应的启动文件(这里我用的是GD32F103RCT6选择startup_gd32f10x_hd.s) 路径修改后 \Libraries\CMSIS\GD\GD32F10x\Source\ARM FWLIB中添加从官方下载的固件库中 路径修改前 GD32F10x_Firmware_Library_V2.2.4\Firmware\GD32F10x_standard_peripheral\Source的全部C文件 路径修改后 \Libraries\GD32F10x_standard_peripheral\Source USER中添加main.c和从官方下载的固件库中GD32F10x_Firmware_Library_V2.2.4\Template的gd32f10x_it.c、gd32f10x_it.h、gd32f10x_libopt.h文件 注意:新版本需要添加\GD32F10x_Firmware_Library_V2.2.4\Utilities 将Utilities加入到USER下并且在C++中包含!不然会报错。 Fatal Error[Pe1696]: cannot open sourcefile "stm32_eval.h" USER中添加gd32f10x_libopt.h不然会报错。 error: #5: cannot open source input file"RTE_Components.h": No such file or directory USER中添加systick.c不然缺少函数声明。
注意,以上所有文件需要放置在自己建的工程文件中,这样才能在工程移动的时候不会出现文件丢失的情况! 注意:启动文件并不是每个型号的单片机都添加“startup_gd32f10x_hd.s”这个文件是根据自己使用的单片机型号所决定 如果使用的是低密度的单片机,闪存在64-128KB的用md后缀的启动文件; 使用高密度的单片机,闪存在256-512KB的用hd后缀的启动文件; 使用超高密度的单片机,闪存在512-1024KB的用xd后缀的启动文件;使用互联型单片机的用cl后缀的启动文件。
配置魔术棒Target 中勾选微库“Use MicroLib”,方便日后编写串口通信实验时使用C语言中出现的printf和scanf函数 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“Objects”文件夹,如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上。 在 C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。 在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。 在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。 GD32F10X_HD :告诉 GD32 标准库,我们使用的芯片类型是GD32 型号是大容量的,使 GD32 标准库根据我们选定的芯片型号来配置。
USE_STDPERIPH_DRIVER :让gd32f10x.h 包含 gd32f10x_libopt.h 这个头文件。
添加完毕后点击编译 0错误0警告 打开魔术棒中的Debug,选择ST-Link 找到芯片以后下载 添加后下载 本小结到此结束!
|