百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

1. GD32F103单片机学习笔记之GD32103E-EVAL开发板入门

ztj100 2024-10-27 18:32 27 浏览 0 评论

之前做学习或者做项目一直用的STM32系列的单片机,最近看着STM32单片的价格暴涨,对于我这个“穷苦”老百姓来说,买不起啊、买不起啊、买不起啊。既然给自己“定性”了,那就要“另辟蹊径”啊,总不能老是在同一棵树上挂着啊。另外,看到各种芯片被“漂亮国”制裁,我一腔爱国之心立马熊熊燃烧了起来,当即决定,老外的芯片不用了,找找咱“自己家”的芯片。又考虑到尽量降低学习开发成本,找来找去找到了兆易创新这家。据说,STM32的代码简单改一下就能在对应的芯片上运行起来。这么好的事,不得玩玩啊。

说干就干,学习单片机第一步,那必须得买块开发板啊。又一通找,找到了兆易创新自家的GD32103E-EVAL全功能开发板(还发现了一款GD32VF103的开发板,使用的是RISC-V内核,对这个也很感兴趣,也一块买了,后面再研究),上面的单片机型号是GD32F103ZET6,考虑到这款单片机的外设资源相对来说比较丰富,所以最终选择了它。这家伙是这样的:

有了开发板,那就要进行相应的学习了,后续相关的文章将记录我的学习过程。那么第一步先来验证一下开发板吧,这时候才发现这货除了在官网上有个对应的官方固件库和例程,没有其他资料(也可能是我没发现,也懒得找了,就从这下手吧)。无妨,那就先下载这个官方例程来整整。从这里下载:

http://gd32mcu.com/download/down/document_id/182/path_type/1

下载后解压,里面是这个样子的:

简单来说说里面的每个目录都是用来干啥的:



目录

功能

GD32F10x_AddOn

GD32F10x系列单片机相关的插件,包括IAR和Keil的芯片支持包

GD32F10x_Firmware_Library

GD32F10x系列单片机固件库,类似STM32固件库V3.5.0

GD32103C_EVAL_Demo_Suites

GD32103C-EVAL开发板对应的开发文档、例程等

GD32103E_EVAL_Demo_Suites

GD32103E-EVAL开发板对应的开发文档、例程等

GD32107C_EVAL_Demo_Suites

GD32107C-EVAL开发板对应的开发文档、例程等

搞明白了固件库的目录结构,那就找个例程测试一下板子吧。由于用的是GD32103E-EVAL开发板,因此打开GD32103E_EVAL_Demo_Suites目录,是这么个样式的:

Docs目录中包含开发板的原理图和用户指南;Projects目录中包含各种外设例程,有小灯闪烁啊、按键啊、串口输出啊等等,我将会在这个里面拿出一个最简单的小灯闪烁的例程来对开发板做一个简单的验证;Utilities目录中包含开发板自带的LCD的驱动程序及第三方的文件系统相关的代码,如果后续做这方面的开也可以将这部分进行移植。

这样固件库的大体目录结构就知道得差不多了,下一步找到对应开发板例程中的小灯闪烁的例程对开发板进行个简单的验证。

当然要先安装相应的IDE,我这里安装的是Keil v5,具体的安装及“你懂的”特殊处理步骤这里就不多说了,网络上资源很多。装好Keil之后,为了让Keil可以支持GD32F103系列的单片机,首先要先安装对应的芯片支持包。

打开Keil后如下图所示:

点击红框中的Pack Installer后弹出相应的窗口:

因为Keil的芯片支持包下载的服务器在国外,所以打开后网络更新速度很慢,这样一直在更新的话,无法显示手动安装芯片支持包的进度,因此首先把左上角菜单栏Packs中的启动更新的选项去掉:

然后关闭将Pack Installer关闭后重新打开,这个时候会发现下面的更新提示不再提示更新了:

如果安装其他芯片的支持包,推荐去Keil的网站先下载下来后再手动安装,下载地址为:

https://www.keil.com/dd2/pack/

继续,点击左上角菜单栏File中的导入,在打开的对话框中找到Keil v5对应的芯片支持包打开即可:

等待安装完成后将Pack Installer窗口关闭:

此时提示软件包有改动,点击是即可:

随后点击Keil菜单Project→Open Project...,在打开的对话框中找到要用的小灯闪烁的例程工程文件,点击打开:

打开工程后有如下提示,是因为固件库中的工程是Keil v4版本的,用Keil v5软件打开会有这样的提示:

因此需要先将该工程转换为Keil v5工程,Project→Manage→Migrate to Version 5 Format...:

转换完成后有如下提示,点击确定即可:

这时会发现左边的工程显示框中多出了一个CMSIS,这是Cortex-M内核软件接口标准,是Keil v5软件提供给工程使用的,也可以自行添加,要想让工程使用Keil提供的CMSIS库,还需对工程进行设置:

按照下图所示进行操作,将..\..\..\..\GD32F10x_Firmware_Library\CMSIS这一行删掉,如果不删掉这行,工程会默认使用固件库中的core_cm3.h,编译时会出现很多错误,导致编译无法通过:

设置完成后即可点击重新编译对工程进行编译了:

下面的编译输出中有相应信息输出,如果编译完成显示错误0警告0,则代表编译没有错误:

编译完成后就要烧录到开发板中查看现象了,首先将开发板自带的USB线的Micro口插在开发板的GD-Link USB口上,另一端插在电脑USB口上,开发板自带的GD-Link使用的是CMSIS-DAP调试器,在电脑端不需要安装驱动,但需要在烧录之前对工程进行相应设置:

最后点击左上角的烧录按钮即可进行程序的烧录,同时下面的提示框中输出提示信息:

烧录完成后开发板上的四个小灯会出现流水灯的效果,说明程序烧录成功:

最后,贴上小灯闪烁的核心代码,首先对四个小灯进行初始化,然后配置系统滴答,实现ms级别的延时,随后while循环中依次打开每个小灯并延时,实现最终的流水灯效果:

到此为止,算是对开发板做了个小小的入门了,那这次的学习就到这里吧。

相关推荐

sharding-jdbc实现`分库分表`与`读写分离`

一、前言本文将基于以下环境整合...

三分钟了解mysql中主键、外键、非空、唯一、默认约束是什么

在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。...

MySQL8行级锁_mysql如何加行级锁

MySQL8行级锁版本:8.0.34基本概念...

mysql使用小技巧_mysql使用入门

1、MySQL中有许多很实用的函数,好好利用它们可以省去很多时间:group_concat()将取到的值用逗号连接,可以这么用:selectgroup_concat(distinctid)fr...

MySQL/MariaDB中如何支持全部的Unicode?

永远不要在MySQL中使用utf8,并且始终使用utf8mb4。utf8mb4介绍MySQL/MariaDB中,utf8字符集并不是对Unicode的真正实现,即不是真正的UTF-8编码,因...

聊聊 MySQL Server 可执行注释,你懂了吗?

前言MySQLServer当前支持如下3种注释风格:...

MySQL系列-源码编译安装(v5.7.34)

一、系统环境要求...

MySQL的锁就锁住我啦!与腾讯大佬的技术交谈,是我小看它了

对酒当歌,人生几何!朝朝暮暮,唯有己脱。苦苦寻觅找工作之间,殊不知今日之事乃我心之痛,难道是我不配拥有工作嘛。自面试后他所谓的等待都过去一段时日,可惜在下京东上的小金库都要见低啦。每每想到不由心中一...

MySQL字符问题_mysql中字符串的位置

中文写入乱码问题:我输入的中文编码是urf8的,建的库是urf8的,但是插入mysql总是乱码,一堆"???????????????????????"我用的是ibatis,终于找到原因了,我是这么解决...

深圳尚学堂:mysql基本sql语句大全(三)

数据开发-经典1.按姓氏笔画排序:Select*FromTableNameOrderByCustomerNameCollateChinese_PRC_Stroke_ci_as//从少...

MySQL进行行级锁的?一会next-key锁,一会间隙锁,一会记录锁?

大家好,是不是很多人都对MySQL加行级锁的规则搞的迷迷糊糊,一会是next-key锁,一会是间隙锁,一会又是记录锁。坦白说,确实还挺复杂的,但是好在我找点了点规律,也知道如何如何用命令分析加...

一文讲清怎么利用Python Django实现Excel数据表的导入导出功能

摘要:Python作为一门简单易学且功能强大的编程语言,广受程序员、数据分析师和AI工程师的青睐。本文系统讲解了如何使用Python的Django框架结合openpyxl库实现Excel...

用DataX实现两个MySQL实例间的数据同步

DataXDataX使用Java实现。如果可以实现数据库实例之间准实时的...

MySQL数据库知识_mysql数据库基础知识

MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...

如何为MySQL中的JSON字段设置索引

背景MySQL在2015年中发布的5.7.8版本中首次引入了JSON数据类型。自此,它成了一种逃离严格列定义的方式,可以存储各种形状和大小的JSON文档,例如审计日志、配置信息、第三方数据包、用户自定...

取消回复欢迎 发表评论: