网友:郑爷爷,什么是朋友?
郑渊洁:孩子将玩具当朋友,成人将朋友当玩具。

如想获取本文相关资料和最后的工程文件,请关注公众号《嵌入式小散修》,回复 GD32F10x系列建立keil模板工程资料

准备

  • 首先,下载 GD32F10x 系列软件包和 keil支持包:http://www.gd32mcu.com/cn/download/7?kw=GD32F1
    目前 GD32F10x 固件库的最新版本是 2.2.2,keil支持包的版本为 2.02,如下所示:(写于2022-3-2
  • 安装 GD32F10x 系列的 keil 支持包

    看到如下界面,说明 keil 支持包安装成功。

建立 GD32F10X 对应的Keil 工程(以GD32F103C8T6为例)

  • 新建文件夹如下:

  • 新建 keil 的空工程,存放在上图中的 KeilProject 文件夹

  • 选择对应芯片

  • 新建工程下的目录如下

  • 添加 CMSIS Cortex-M3 Device Peripheral Access Layer Source File,对于所有 GD32F10x 系列都有效。

  • 添加芯片启动文件(因为GD32F103C8T6是中等容量,所以选择 startup_gd32f10x_md.s,别的芯片按照其容量选择)

  • 添加 GB32F10x 标准库文件

  • 从标准库中的模板工程拷贝如下器个文件到 User 文件夹。(???有标准模板,我在这折腾啥?算了就当熟悉结构吧)

  • 将上述文件中的 .c 文件加入工程。

  • 标准库需要增加两个宏定义才能使用:USE_STDPERIPH_DRIVER,GD32F10X_MD

  • 添加头文件路径:

  • 如果你的板子没有外部晶振,得配置成内部晶振,如下操作:

  • 将 main 函数修改成如下代码:

/*!\file    main.c\brief   led spark with systick, USART print and key example\version 2014-12-26, V1.0.0, firmware for GD32F10x\version 2017-06-20, V2.0.0, firmware for GD32F10x\version 2018-07-31, V2.1.0, firmware for GD32F10x\version 2020-09-30, V2.2.0, firmware for GD32F10x
*//*Copyright (c) 2020, GigaDevice Semiconductor Inc.Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.
*/#include "gd32f10x.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
#include "gd32f10x_eval.h"/*!\brief      toggle the led every 500ms\param[in]  none\param[out] none\retval     none
*/
void led_spark(void)
{static __IO uint32_t timingdelaylocal = 0U;if(timingdelaylocal){if(timingdelaylocal < 500U){gd_eval_led_on(LED2);}else{gd_eval_led_off(LED2);}timingdelaylocal--;}else{timingdelaylocal = 1000U;}
}/*!\brief      main function\param[in]  none\param[out] none\retval     none
*/int main(void)
{/* configure systick */systick_config();/* initilize the LEDs, USART and key */gd_eval_led_init(LED2); gd_eval_led_init(LED3); gd_eval_led_init(LED4);gd_eval_com_init(EVAL_COM0);gd_eval_key_init(KEY_WAKEUP, KEY_MODE_GPIO);/* print out the clock frequency of system, AHB, APB1 and APB2 */printf("\r\nCK_SYS is %d", rcu_clock_freq_get(CK_SYS));printf("\r\nCK_AHB is %d", rcu_clock_freq_get(CK_AHB));printf("\r\nCK_APB1 is %d", rcu_clock_freq_get(CK_APB1));printf("\r\nCK_APB2 is %d", rcu_clock_freq_get(CK_APB2));while(1){if(RESET == gd_eval_key_state_get(KEY_WAKEUP)){gd_eval_led_on(LED3);delay_1ms(500);gd_eval_led_off(LED3);gd_eval_led_toggle(LED4);}}
}/* retarget the C library printf function to the USART */
int fputc(int ch, FILE *f)
{usart_data_transmit(EVAL_COM0, (uint8_t)ch);while(RESET == usart_flag_get(EVAL_COM0, USART_FLAG_TBE));return ch;
}
  • 连接烧录器和开发板,配置烧录器(这里以jlink为例)

    如果是 SWD 模式,选择SW:

  • 编译OK,然后下载。

【超级详细教程】给 GD32F10x 系列建立keil工程相关推荐

  1. 【超级详细教程】移植 RT-Thread Nano到 GD32F10x系列

    对世界大多数人而言,人生一无意义,二无价值. – 季羡林 准备工作 下载 RT-Thread Nano 源码:https://github.com/RT-Thread/rtthread-nano/ar ...

  2. PixiJS超级详细教程【从入门到入土-上】

    PixiJS 来自GitHub教程 GitHub - Zainking/LearningPixi: ⚡️Pixi教程中文版 PixiJS超级详细教程[从入门到入土-下]地址[https://blog. ...

  3. 【Java】Java GUI制作Windows桌面程序,利用windowbuilder生成界面,使用exe4j打包成可执行文件,使用Inno Setup打包成安装包,超级详细教程

    目录 1.GUI插件 1.1 下载GUI绘制插件 1.2 eclipse中配置windowbuilder插件 2.绘制GUI界面 2.1 建立一个GUI的项目 3.配置Maven项目 3.1新建一个M ...

  4. uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级详细教程

    前言 关于 uni-app 项目中接入微信授权登录的文章鱼龙混杂,各种乱代码.过时.没注释.不讲流程原理,非常难用. 本文实现了 uni-app H5 移动端网页项目,实现微信授权登录功能,详细讲解接 ...

  5. uni-app - 最详细 H5 网页接入微信支付功能,提供从详细的示例代码与注释(移动端网页实现微信支付能力,微信公众号前端支付 JSAPI / JS-SDK 详细示例源码)官方最新超级详细教程

    前言 关于 uni-app 项目中接入微信支付的文章鱼龙混杂,各种 JSAPI / JS-SDK 乱代码.过时.没注释.不讲流程原理,非常难用. 本文实现了 uni-app H5 移动端网页项目,实现 ...

  6. bat批处理教程_超级详细教程

    bat批处理教程(1) 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单, ...

  7. 阿里/腾讯云静默安装Oracle11G超级详细教程

    阿里/腾讯云linux安装Oracle11G 本教程使用的环境是: 1H2G Centos7.6 64bit 检查硬件环境 内存要求>1GB(最好是2GB),交换内存大于物理内存的1.5倍,硬盘 ...

  8. 【超级详细教程】IntelliJ IDEA 从入门到上瘾,常用配置、插件、多光标操作、快捷键。

    本文共计 1.5 W 字,80 张图介绍 IDEA 中令人相见恨晚的技巧,本文中从入门.简单项目创建开始,介绍 IDEA 中多光标操作.常用配置.插件.版本控制等等.一定包含你在别的文章没有看到的内容 ...

  9. gitee 从 拉取新分支到本地_Hexo博客详细教程(一)| 建立本地站点

    点上方蓝字关注我们 每天都有好玩的东西等着你 博客炫酷效果展示 安装Hexo 安装Git 参考文章:Git实用教程(二) | Git简介及安装详解. 安装Nodejs Nodejs可以从官网( htt ...

最新文章

  1. 《OpenCV3编程入门》学习笔记7 图像变换(四 )仿射变换
  2. oracle 2日dba 11g,Oracle 11gR2 注意revoke dba 会一并回收通过”quota“分配的表空间限额...
  3. 【 MATLAB 】信号处理工具箱之fft简介及案例分析
  4. 任天堂经典拳击游戏可以体感操作了,打开网页就能玩,击败泰森不是梦
  5. mysql 主从_搭建mysql主从并编写监控主从状态脚本
  6. java存放的位置_java数据类型的种类以及存放的位置
  7. 用集合编写的java通讯录_java使用集合实现通讯录功能
  8. wordpress古腾堡淘宝客插件,支持京东淘宝
  9. Cocos2d-x 3.x基础学习: 拖尾渐隐效果MotionStreak
  10. php 函数 累乘 累加,如何实现EXCEL中的累加计算【累加累乘】
  11. 函数发生器的使用方法
  12. 网站:推荐几款好用的在线短链生成工具
  13. 模拟QQ网络棋牌游戏
  14. python的乐高积木——函数
  15. matlab 图片倒影_计算物理基于matlab方法研究水中倒影问题
  16. 江苏理工学院计算机网络期末,江苏理工学院数据中心机房管理制度
  17. 计算机毕业设计android的在线音乐播放器app设计(源码+系统+mysql数据库+Lw文档)
  18. 为什么抑郁症的人情绪忽好忽坏,阴晴不定,脾气有的时候还很大?
  19. earlier的意思_earlier和before都有之前的意思?有什么区别吗
  20. 国科大学习资料--最优化计算方法(王晓)--第六次作业答案

热门文章

  1. 网站服务器怎么恢复原来数据库,五步骤完成WordPress网站和数据库备份、搬迁恢复访问...
  2. modbus tcp怎么设计通讯状态是否正常_安科瑞 张奇峰杭后旗医院消防设备电源监控系统 的设计与应用...
  3. 桌面只能进入计算机,win7进桌面黑屏只有鼠标不能进入桌面的终极办法
  4. 使用python的pyppeteer模块实现淘宝登录
  5. 从零构建FLINK整合Drools动态规则实时运营系统(项目案例)第2篇(业务介绍篇)
  6. 标签超过两行折叠,可展开(淘宝搜索历史记录折叠效果)(vue)
  7. 刻苦加技巧促成SAT阅读飞跃进步
  8. 乐高机器人纲要_新课改选修课乐高机器人课程纲要
  9. 微信支付之JSAPI公众号支付
  10. 用matlab将灰度图转换为彩色图