GD32F103RCT6/GD32F303RCT6(2)固件库移植

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发

       后续项目主要在下面该专栏中发布:

手把手教你嵌入式国产化_不及你的温柔的博客-CSDN博客

       感兴趣的点个关注收藏一下吧!

       电机驱动开发可以跳转:

手把手教你嵌入式国产化-实战项目-无刷电机驱动(1)-CSDN博客

       BMS电源系统开发可以跳转:暂未放链接

 向上代码兼容GD32F303RCT6中使用

  • 目录:
  • 本项目配套开发板
  • 文件介绍
  • 新建工程
  • 添加组文件
  • 配置魔术棒

本项目配套开发板:

基于GD32F103RCT6国产GD32平台,以下教程编写基于该开发板

图片:

c0c7fe2a79fb41239aa6614c07d3d2a1.jpeg

原理图以及例程请联系客服获取!

注意:

网上很多教程存在很多未解决的问题就发出,本教程致力于解决所有在调试中出现的所有问题,如有未包含在的问题,请联系QQ:2049363803,有奖更新文档!

文件介绍

上一小结我们已经成功安装keil 5编译器,并且载入了GD32F10x的板级支持包,完成了编译下载等任务,这节我们继续介绍一下官方提供的固件库的文件结构。

a1e9175090554d91b97364400b9efc49.png

“Docs”文件夹里面存放的是本文件的说明介绍,方便我们更好去使用;

“Example”文件夹里面存放的是每个外设的参考例程;

“Firmware”文件夹里面存放的是固件库的核心文件;

“Template”文件夹里面存放的是官方的固件库移植示例;

“Utilities”文件夹里面存放的是一些第三方固件驱动。

新建工程

843ec5403c304b9c86b91a54e071697b.png

选择工程保存路径:

7d8109db3de347b9b178c31def0bd746.png

选择本项目配套代码的芯片GD32F103RCT6。

29a3bed8b8794f75b797b21ceb584db9.png

这里是在线添加库文件,我们本小结等会手动添加库文件,在这里我们点击右上角关闭。

a9d803be837b47e7907c05efcc176929.png

添加组文件夹

在本工程新建的文件夹中添加6个组文件夹,用来存放

f28ef934effb44a6ad776ecc18d928f1.png

Doc                   工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等

HARDWARE 用户自定义外设文件放在该文件夹中(本工程暂时用不到为空)

Libraries                             startup:startup_gd32f10x_hd.s(根据芯片Flash容量选择),CMSIS

Fwlib: GD32F10x_standard_peripheral\Source 文件夹下的全部 C 文件,即固件库

Project 工程存放目录

System

放置系统文件(本工程用不上暂时为空)

dca3fd6411c34a9f98324e2142d1566f.png

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文件

点击文件管理

48e802ef72e14701b670d04c958c98ae.png

添加组文件夹:

c27779f4cad64c9f9cae7f72baa5f4db.png

几个文件夹前面都有解释

下面三个文件需要包含在文件夹Libraries

4bc9cef8222e4c06bd6f52a0decf0903.png

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 source file "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不然缺少函数声明。

215c60ec5f0b4dd8b4cf1d316c071882.png

注意,以上所有文件需要放置在自己建的工程文件中,这样才能在工程移动的时候不会出现文件丢失的情况!

946c2fd3960e4e5c8983a1969580cf4a.png

e9f51018d75f427185b1c4d3a39f7173.png

be564ab8a0e849459ebabfad0e3635cd.png

注意:启动文件并不是每个型号的单片机都添加“startup_gd32f10x_hd.s”这个文件是根据自己使用的单片机型号所决定

如果使用的是低密度的单片机,闪存在64-128KB的用md后缀的启动文件;

使用高密度的单片机,闪存在256-512KB的用hd后缀的启动文件;

使用超高密度的单片机,闪存在512-1024KB的用xd后缀的启动文件;使用互联型单片机的用cl后缀的启动文件。

配置魔术棒

bd1ca32855ea464da7590f077bac7022.png

Target 中勾选微库“Use MicroLib”,方便日后编写串口通信实验时使用C语言中出现的printf和scanf函数

215a7b86c7964329876f9864607a7cc4.png

在 Output 选项卡中把输出文件夹定位到我们工程目录下的“Objects”文件夹,如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上。

92027999262346f39e243e4707bff819.png

在 C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。

f05cb708390043b49190047c854ac752.png

edc0f237512e4960b559dbcb60bdf412.png

在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。

在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。

GD32F10X_HD :告诉 GD32 标准库,我们使用的芯片类型是 GD32

型号是大容量的,使 GD32 标准库根据我们选定的芯片型号来配置。

USE_STDPERIPH_DRIVER :让 gd32f10x.h 包含 gd32f10x_libopt.h 这个头文件。

101aa9fc9c3d41ed97b5a62b6086ad71.png

添加完毕后点击编译

469533af36a245ce989aad7a28c3e913.png

0错误0警告

91a0edfe263948cc92c5495576fe38b6.png

打开魔术棒中的Debug,选择ST-Link

019f8886291a47ad86d93f4e082e9695.png

找到芯片以后下载

73c1f93fd00244c783c89f5ea0c3315a.png

e1c5573591b94f0ca9f9f1daa6989574.png

添加后下载

3ba78150ab5a4a96acb46da075588950.png

本小结到此结束!

群号:621154399

有问题欢迎大家加入我们一起交流,这个群是开源性技术交流群。​​​​​​​

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不及你的温柔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值