1. GD32F103单片机学习笔记之GD32103E-EVAL开发板入门
liebian365 2024-11-14 18:05 25 浏览 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循环中依次打开每个小灯并延时,实现最终的流水灯效果:
到此为止,算是对开发板做了个小小的入门了,那这次的学习就到这里吧。
相关推荐
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
-
明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
-
首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
-
齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...
- Qt界面——搭配QCustomPlot(qt platform)
-
这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
-
老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
-
用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
-
前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...
- 掌握Visual Studio项目配置【基础篇】
-
1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
-
随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...
- Visual Studio Community 2022(VS2022)安装图文方法
-
直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...
- Qt添加MSVC构建套件的方法(qt添加c++11)
-
前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...
- Qt为什么站稳c++GUI的top1(qt c)
-
为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...
- qt开发IDE应该选择VS还是qt creator
-
如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...
- Qt 5.14.2超详细安装教程,不会来打我
-
Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...
- Cygwin配置与使用(四)——VI字体和颜色的配置
-
简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
- Qt界面——搭配QCustomPlot(qt platform)
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
- 掌握Visual Studio项目配置【基础篇】
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
- Visual Studio Community 2022(VS2022)安装图文方法
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)