1. GD32F103单片机学习笔记之GD32103E-EVAL开发板入门
ztj100 2024-10-27 18:32 9 浏览 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循环中依次打开每个小灯并延时,实现最终的流水灯效果:
到此为止,算是对开发板做了个小小的入门了,那这次的学习就到这里吧。
相关推荐
- 从IDEA开始,迈进GO语言之门(idea got)
-
前言笔者在学习GO语言编程的时候,GO语言在国内还没有像JAVA/Php/Python那样普及,绕了不少的弯路,要开始入门学习一门编程语言,最好就先从选择一个好的编程语言的开发环境开始,有了这个开发环...
- 基于SpringBoot+MyBatis的私人影院java网上购票jsp源代码Mysql
-
本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍基于SpringBoot...
- 基于springboot的个人服装管理系统java网上商城jsp源代码mysql
-
本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍基于springboot...
- 基于springboot的美食网站Java食品销售jsp源代码Mysql
-
本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍基于springboot...
- 贸易管理进销存springboot云管货管账分析java jsp源代码mysql
-
本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目描述贸易管理进销存spring...
- SpringBoot+VUE员工信息管理系统Java人员管理jsp源代码Mysql
-
本项目为前几天收费帮学妹做的一个项目,JavaEEJSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。一、项目介绍SpringBoot+V...
- 目前见过最牛的一个SpringBoot商城项目(附源码)还有人没用过吗
-
帮粉丝找了一个基于SpringBoot的天猫商城项目,快速部署运行,所用技术:MySQL,Druid,Log4j2,Maven,Echarts,Bootstrap...免费给大家分享出来前台演示...
- SpringBoot+Mysql实现的手机商城附带源码演示导入视频
-
今天为大家带来的是基于SpringBoot+JPA+Thymeleaf框架的手机商城管理系统,商城系统分为前台和后台、前台用的是Bootstrap框架后台用的是SpringBoot+JPA都是现在主...
- 全网首发!马士兵内部共享—1658页《Java面试突击核心讲》
-
又是一年一度的“金九银十”秋招大热门,为助力广大程序员朋友“面试造火箭”,小编今天给大家分享的便是这份马士兵内部的面试神技——1658页《Java面试突击核心讲》!...
- SpringBoot数据库操作的应用(springboot与数据库交互)
-
1.JDBC+HikariDataSource...
- SpringBoot 整合 Flink 实时同步 MySQL
-
1、需求在Flink发布SpringBoot打包的jar包能够实时同步MySQL表,做到原表进行新增、修改、删除的时候目标表都能对应同步。...
- SpringBoot + Mybatis + Shiro + mysql + redis智能平台源码分享
-
后端技术栈基于SpringBoot+Mybatis+Shiro+mysql+redis构建的智慧云智能教育平台基于数据驱动视图的理念封装element-ui,即使没有vue的使...
- Springboot+Mysql舞蹈课程在线预约系统源码附带视频运行教程
-
今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的Springboot+Mysql舞蹈课程在线预约系统,系统项目源代码在【猿来入此】获取!https://www.yuan...
- SpringBoot+Mysql在线众筹系统源码+讲解视频+开发文档(参考论文
-
今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的在线众筹管理系统,主要实现了普通用户在线参与众筹基本操作流程的全部功能,系统分普通用户、超级管理员等角色,除基础脚手架外...
- Docker一键部署 SpringBoot 应用的方法,贼快贼好用
-
这两天发现个Gradle插件,支持一键打包、推送Docker镜像。今天我们来讲讲这个插件,希望对大家有所帮助!GradleDockerPlugin简介...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 从IDEA开始,迈进GO语言之门(idea got)
- 基于SpringBoot+MyBatis的私人影院java网上购票jsp源代码Mysql
- 基于springboot的个人服装管理系统java网上商城jsp源代码mysql
- 基于springboot的美食网站Java食品销售jsp源代码Mysql
- 贸易管理进销存springboot云管货管账分析java jsp源代码mysql
- SpringBoot+VUE员工信息管理系统Java人员管理jsp源代码Mysql
- 目前见过最牛的一个SpringBoot商城项目(附源码)还有人没用过吗
- SpringBoot+Mysql实现的手机商城附带源码演示导入视频
- 全网首发!马士兵内部共享—1658页《Java面试突击核心讲》
- SpringBoot数据库操作的应用(springboot与数据库交互)
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- node卸载 (33)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- exceptionininitializererror (33)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)