国产GD32单片机开发入门(二)GD32单片机详解
文章目录
- 一.概要
- 二.单片机型号命名规则
- 三.GD32F103系统架构
- 四.GD32F103C8T6单片机启动流程
- 五.GD32F103C8T6单片机主要外设资源
- 六.单片机开发过程中查看芯片数据手册的必要性
- 1.单片机外设资源情况
- 2.GD32单片机内部框图
- 3.GD32单片机管脚图
- 4.GD32单片机每个管脚功能
- 5.单片机功耗数据
- 6.FALSH编程时间,擦写次数
- 7.I/O特性表格
- 8.外设接口最大速度
- 9.芯片供电电压范围
- 七.GD32F103C8T6单片机应用场景
- 八.总结
一.概要
单片机(MCU)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU内核、随机存储器SRAM、存储器FLASH、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
GD32单片机是兆易创新公司基于ARM Cortex-M3内核开发的32位微控制器。
GD32F103C8T6就是其中的一款单片机。
GD32F103C8T6单片机主要特性
内核:ARM Cortex-M3
主频:108MHz,STM32F103主频是72MHz,国产的GD32主频高很多。
RAM:20k(SRAM)
ROM:64k(Flash)
供电:2.0~3.6V(标准3.3V)
芯片实物图如下:
芯片引脚定义如下:
二.单片机型号命名规则
根据命名规则,GD32F103C8T6就是通用型的,48脚,64K闪存,LQFP贴片封装,-40~85度的工业级的单片机。
三.GD32F103系统架构
如图所示,左上角为内核(ARM Cortex-M3),I-Code和D-Code主要连接Flash闪存。
Cortex‐M3内核:
是一个 32 位处理器内核。内部的数据总线是 32 位的,寄存器是 32 位的,存储器接
口也是 32 位的。Cortex‐M3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。
FLASH闪存:
我们编写好的程序经过Keil5编译之后都是一条条指令,存放在FLASH中。内核(ARM Cortex-M3)通过I-Code总线来取里边的指令,所以FLASH主要是用来存程序,但也开放一部分空间可以存数据。
SRAM存储器:存放程序运行时的变量数据。
I-Code指令总线:
内核(ARM Cortex-M3)要从FLASH中读取指令来执行程序就必须通过ICode总线,它几乎每时每刻都需要被使用,它是专门用来取指的,所以叫它指令总线。
D-Code数据总线:
我们在写程序的时候,数据有常量也有变量,常量就是固定不变的,用C语言中的const关键字修饰,是放在FLASH,变量是可变的,是放在SRAM,所以内核(ARM Cortex-M3)可以通过D-code总线访问FLASH和SRAM读取数据,所以叫它数据总线。
APB2,APB1系统总线:
用于挂载外设(GPIO、USART、I2C、SPI等这些外设)(APB2一般和AHB同频率最高可以到108MHz,APB1最高只能到54MHz)。
System总线主要是用来访问外设寄存器,我们通常说的寄存器编程,即读写寄存器都是通过System总线来完成的。
DMA总线:可以用来传输数据,这个数据可以是某个外设的数据寄存器,也可以是SRAM或者FLASH中的数据。
EXMC是并口扩展,在GD32F103C8T6中是没有的,会在GD32F103ZET6等引脚比较多的单片机型号中。
四.GD32F103C8T6单片机启动流程
通过单片机BOOT0引脚与BOOT1引脚的电平高低组合,配置单片机启动模式
我们一般都用下拉电阻配置BOOT0引脚为低电平,单片机的SWD下载口用下载器下载完代码,程序就能直接运行,这是最常用的启动模式。
GD32F103C8T6单片机从FLASH的启动流程:
当芯片上电后采样到 BOOT0 引脚为低电平时,0x00000000 和 0x00000004 地址被映射到内部 FLASH 的首地址 0x08000000 和 0x0800 0004。因此,内核离开复位状态后,读取内部 FLASH 的 0x08000000 地址空间存储的内容,赋值给栈指针 MSP,作为栈顶地址,再读取内部 FLASH 的 0x08000004 地址空间存储的内容,赋值给程序指针 PC,作为将要执行的第一条指令所在的地址。完成这两个操作后,内核就可以开始从 PC 指向的地址中读取指令执行了,0x0800 0004是中断向量表的起始地址,这就是复位程序的入口地址,接着跳转到复位程序入口处,初始向量表,然后设置时钟,设置堆栈,最后跳转到main函数,即进入用户程序。
五.GD32F103C8T6单片机主要外设资源
GD32F103C8T6单片机集成了丰富的外设,比如GPIO,定时器,SPI,USART,CAN,USB,ADC等外设,这些丰富的外设能驱动很多各种接口的传感器,很多时候编程的工作也是对这些外设进行驱动编程。
红色圈出来的就是GD32F103C8T6单片机存储外设资源:
六.单片机开发过程中查看芯片数据手册的必要性
在编程的过程中,会经常查看一些资料,比如芯片数据手册会经常用到,作用比较大,主要需要查看哪几点,下面做个简单介绍:
1.单片机外设资源情况
编程的时候会了解是否存在这个外设,外设数量是否正确,FLASH的大小,RAM的大小,空间是否会超,需要查看确认。
2.GD32单片机内部框图
有时候需要知道某个外设是挂在哪个总线(APB1还是APB2)下面,最高主频多少,是否存在这个外设等信息,需要查看这个单片机框图。
3.GD32单片机管脚图
在代码的调试过程中,有时候需要确认硬件是否连接正确,就需要知道单片机相应引脚的定义。
4.GD32单片机每个管脚功能
在写代码过程中,需要知道这个引脚的基本功能,是否5V容忍(可以输入5V高电平),可以复用配置成哪个外设,是否需要重映射等功能,需要查看这表格。
5.单片机功耗数据
在某些低功耗项目场景,需要知道配置成哪个低功耗模式更省电,不同主频功耗能符合功耗要求,需要查看这表格。
6.FALSH编程时间,擦写次数
在FLASH的存储操作中,需要知道编程时间,保证数据能正确写入,需要知道擦写次数,保证芯片不会因为擦写过多而损坏。
7.I/O特性表格
在I/O读取操作时,有些电压采集到的不是高电平或者低电平,需要查这表格确认读到的电压符合单片机读到的高低电平电压要求。
单片机的I/O都可以配置内部上拉下拉,上拉电阻,下拉电阻多大,一般都是40K,可以在这表格里查出来。
8.外设接口最大速度
还有一些外设的最大速度,比如SPI,IIC口的最快速度也都能在芯片手册中找到。
9.芯片供电电压范围
GD32单片机一般都是3.3V供电,电压是否符合要求,要看芯片手册供电范围。
七.GD32F103C8T6单片机应用场景
工业自动化:GD32F103C8T6具有丰富的外设接口,如USART、SPI、I2C等,可以方便地与各种传感器和执行器进行通信和控制。在工业自动化领域,它可以用于实现各种控制逻辑、数据采集和通信等功能。
智能家居:GD32F103C8T6具有低功耗、高性能的优点,可以作为智能家居系统的主控制器。通过与传感器、执行器等设备进行通信和控制,可以实现智能照明、智能安防、智能环境监测等功能。
智能交通:GD32F103C8T6可以用于智能交通系统的控制和管理。例如,它可以用于控制交通信号灯、监控道路状况、检测车辆违章等,提高交通效率和安全性。
医疗电子:GD32F103C8T6具有高精度、低功耗的特点,可以用于医疗电子设备的控制和监测。例如,它可以用于实现医疗设备的自动化控制、数据采集和传输等功能。
消费电子:GD32F103C8T6也可以用于消费电子产品的设计和开发。例如,它可以用于实现智能手表、智能音箱、智能玩具等产品的控制逻辑和数据处理等功能。
八.总结
在了解GD32单片机大概的内部信息和特性之后,基于GD32F103C8T6的开发板,配合STLINK下载调试器,在Keil 5软件的加持下就可以进行编程操作了。
相关文章:
国产GD32单片机开发入门(二)GD32单片机详解
文章目录 一.概要二.单片机型号命名规则三.GD32F103系统架构四.GD32F103C8T6单片机启动流程五.GD32F103C8T6单片机主要外设资源六.单片机开发过程中查看芯片数据手册的必要性1.单片机外设资源情况2.GD32单片机内部框图3.GD32单片机管脚图4.GD32单片机每个管脚功能5.单片机功耗数…...
8个我平时每天都会看的网站,涵盖办公、娱乐、学习等
分享8个我平时每天都会看的网站,涵盖办公、娱乐、学习等多种类别,试过就知道有多好用! 1、MyFreeMP3 tools.liumingye.cn/music/#/ 一个可以免费听歌的平台,不用充会员,里面收录了大多数的国内外知名流行歌手、乐队的…...
Vue2——父子之间间的调用
1、父组件给子组件传值使用props 父组件: <div><SonPage msg"通过props传递值---父>子" ></SonPage><h1>父组件</h1></div> 子组件 <div :style"{border: 1px solid red}"><h1>子组件…...
xfs Vs ext4?
xfs测试 ext4 测试 对比 XFS和EXT4都是Linux系统中广泛使用的文件系统,它们各有特点和优势,选择哪一个取决于你的具体需求和使用场景。下面是它们的主要特点: XFS: 由Silicon Graphics Inc.开发,最初用于SGI的IRIX系统。支持非…...
数据结构stack (笔记)
文章目录 1. 概念理解易混淆内容 2. 时间复杂度3. 实现方式4. 应用5. 内容出处 1. 概念理解 stack(中文名:堆栈、栈):虽然它叫堆栈,但是它其实指的是栈,跟堆没啥关系。 栈的特性:先进后出、后进先出(这个过程就…...
SQL - 创建 表和数据库
创建和删除数据库 create database if not exists sql_store2; //创建 drop database if exists sql_store2; //删除 -- 创建数据库 create database if not exists sql_store2; drop database if exists sql_store2; 创建表 create table customers (someting); -- 创建表 cre…...
使用 Arch Linux 几个月有感 | 为什么我选择 Arch Linux ,Arch 的优缺点有什么 | 一些Linux发行版推荐
(终端是 Yakuake ,KDE 自带) 一点碎碎念,可以跳过不看 几年前从 CentOS 接触的 Linux ,试图搭建一个KMS服务器 但是失败了 ,后来装过 Ubuntu Debian deepin Kali Kubuntu Manjaro,踩一路坑最后…...
SQLserver中的增删改查和数据类型
SQLserver增删查改语句 SQL Server 是一种关系数据库管理系统,用于存储、管理和检索数据。以下是一些基本的 SQL 语句,用于在 SQL Server 中执行增删查改操作: 插入数据(Insert) 插入完整行: INSERT INTO …...
个人收藏个性化、实用性、可玩性在线网站持续更新,与君共享
1.https://handraw.top/ 支持中文手绘效果的白板工具,比较怀旧复古风格 界面简单风 2.https://app.diagrams.net 流程图、UML图、网络图、组织结构图、思维导图等,比较专业 可导出图片 PDF HTLM等各种格式 3.https://www.processon.com 主要用于生成…...
win10蓝牙只能发送,无法接收
给win10升了级,到22H2,蓝牙出了问题 以前接收,就是默认直接就可以接收。现在只能发送,无法接收。 在网上找了很多办法都没奏效,目前的方法是, 每次接收,都要操作一次,而不是自动接…...
【论文阅读03】用于海洋物体检测的多注意力路径聚合网络
来源:用于海洋物体检测的多注意力路径聚合网络 |应用智能 (springer.com) 一、背景: 水下图像存在偏色、对比度低、能见度低等问题,使得海洋物体难以被探测到。这些都增加了海上目标探测的难度。 目前流行的检测器方法是基于卷积神经网络&…...
Linux 进程(2)
进程的回收 1.wait 原型 pid_t wait(int *status); 功能:该函数可以阻塞等待任意子进程退出 并回收该进程的状态。 一般用于父进程回收子进程状态。 参数:status 进程退出时候的状态 如果不关心其退出状态一般用NULL表示 如果要回收进程…...
[CSCCTF 2019 Qual]FlaskLight1
打开题目 右键查看一下源代码 看到提示,需要用GET方search函数...
layui table表单 checkbox选中一个其它也要选中
当我们选中其中一个商品的时候同类型的商品状态也要跟着改变 所以要在表单加载完成后去监听checkbox ,done:function (res) {console.log(详情表格数据,res)tableDetailList res.data;// 监听表格复选框选择table.on(checkbox( INST_SELECTORS.instLayFilters.unpaidTableDe…...
【pip镜像设置】pip使用清华镜像源安装
文章目录 问题:问题描述原因分析:PyPI(Python Package Index) PypI 镜像列表解决方案: 问题: 大家经常会使用 pip 进行python 的第三方库安装,但是,有时会出现 ERROR: Could not f…...
c++ 智能指针--std::shared_ptr
在C中,std::shared_ptr是智能指针的一种,它用于自动管理具有动态生命周期的对象。当std::shared_ptr的实例被销毁或重置时,它所指向的对象(如果仍然存在)将被自动删除(调用delete),前…...
网络工程师学习笔记(二)
计算机网络概述——二 通信子网中转发节点的互联模式叫做子网的拓扑结构 常见的拓扑结构: 总线型(一条总干线上连接着多个终端) 特点:损坏一个节点会造成单点故障 星型(中间一台服务器或者一各小型工作站周围都是计算机) 特点…...
90.WEB渗透测试-信息收集-Google语法(4)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:89.WEB渗透测试-信息收集-Google语法(3) • inurl • 搜索特殊 UR…...
阿里Qwen2开源大模型本地部署及调试全攻略
阿里Qwen2开源大模型本地部署及调试全攻略 #Qwen2系列大模型性能卓越,超越业界知名模型。开源后受到AI开发者关注,支持多种语言,提升多语言理解。在预训练和微调上优化,实现智能水平提升。Qwen2系列模型在各项能力上均领先&#…...
『功能项目』移动后的光标显示【04】
我们打开上一篇03的射线双击项目, 本章要做的事情是在PlayerRayNavgation脚本中添加一个移动光标,实现人物在场景中鼠标点击移动后在移动过程中出现移动目标光标的效果。 在unity编辑器中创建一个Plane 重命名为MovementSign 删掉碰撞器 创建一个材质 选…...
HTML 基本语法特性与 title 标签介绍
目录 title标签 HTML 的基本语法特性 对换行和缩进不敏感 空白折叠现象 标签要严格封闭 title标签 在 HTML 中,<title>标签起着至关重要的作用,它主要用于定义文档的标题。通常情况下,<title>标签被放置在<head>标签内…...
CSS的:placeholder-shown伪类:精确控制输入框占位符样式
CSS(层叠样式表)是控制网页元素样式的强大工具。随着Web开发技术的进步,CSS不断引入新的选择器和伪类,以增强开发者对页面元素的控制能力。:placeholder-shown伪类是CSS中一个相对较新的特性,它允许开发者针对输入字段…...
Java之HashMap的底层实现
Java之HashMap的底层实现 摘要HashMap的底层原理哈希值转换为数组下标节点初始化put(Object key, Object value)重写toString()get(Object key)增加泛化remove(K key) 摘要 本博客主要讲述了Java的HashMap的底层实现 HashMap的底层原理 底层原理:数组链表 过程…...
多张图片进行模型重建并转换为OBJ模型
前提条件: 需要安装OpenCV库和Eigen库(用于矩阵运算)。你需要对计算机视觉和3D建模有一定了解。 步骤概述: 使用OpenCV进行图像处理和特征提取。使用OpenCV进行相机标定和图像对齐。使用重建算法(如SIFT、SURF…...
信息安全保证人员CISAW:安全集成
信息安全保障人员认证(CISAW)在安全集成领域的认证,主要针对申请者在信息系统安全集成的知识和理论以及项目实施中的综合应用能力进行全面评估。 这一认证特别强调对申请者在安全集成方面的知识深度和利用这些知识分析、解决实际问题的能力的评价。 此外ÿ…...
别再无效清理微信内存啦,这才是正确清理内存的方式
微信作为我们日常生活中必不可少的社交工具,随着时间的积累,往往会占据手机大量宝贵的存储空间。 如何在保证重要信息不丢失的同时,有效地管理和清理微信中的垃圾文件和无用数据,成为了一个值得探讨的话题。 本文将从几个方面介…...
ant design 的 tree 如何作为角色中的权限选择之一
这种功能如何弄呢? 编辑的时候要让权限能选中哦。 <ProForm.Item name"permissions" label{intl.formatMessage({ id: permission_choose })}><Spin spinning{loading}><TreecheckableonExpand{onExpand}expandedKeys{expandedKeys}auto…...
如何在项目管理中完成项目立项?
项目立项是项目管理中的重要环节,是项目正式启动的第一步。项目立项的概念指的是对项目进行初步评估、确定项目的可行性并正式批准项目开展的过程。其意义在于确保项目具备明确的目标和合理的资源配置,为项目的成功实施奠定坚实基础。 项目立项的前期准…...
LearnOpenGL——延迟渲染学习笔记
延迟渲染学习笔记 一、基本概念二、G-BufferMRT 三、Lighting Pass四、结合延迟渲染和前向渲染五、更多光源 我们之前使用的一直是 前向渲染(正向渲染 Forward Rendering),指的是在场景中根据所有光源照亮一个物体,之后再渲染下一…...
惠海H4312 dcdc同步整流降压恒压IC 30V 40V转3.3V/5V/12V小体积大电流单片机供电
1.产品描述 H4312是一种内置30V耐压MOS,并且能够实现精确恒压以及恒流的同步降压型 DC-DC 转换器: 支持 3.1A 持续输出电流输出电压可调,最大可支持 100%占空比;通过调节FB 端口的分压电阻,可以输出2.5V到 24V的稳定电压。 H4312 采用高端…...
最好看的WordPress 音乐播放器/快速seo优化
之前项目中都是使用FusionChart和HighChart,基本都是没有购买商业许可。然后现在开发的系统需要交付给客户使用。所以现在图表控件不能直接使用FusionChart和HighChart,通过对比EChart和D3.js,EChart由百度开发,相关的中文文档和问…...
平面设计网站推荐/拓客软件排行榜
Python初学者的自我修养,找到自己的方向 对于我来说Python的应用场景主要是机器学习、深度学习相关,对于其他的场景涉猎不多。因此本文的目的并不是列举出一系列小项目给你们练手,而是希望引导大家思考这个问题,从而找到适合自己…...
网站模板如何优化/北京网络推广有哪些公司
最终实现效果 在图片上右键上传,自动生成图片URL到剪切板中,任意地方Ctrlv均可粘贴 在文件上右键上传,自动生成图片URL到剪切板中,任意地方Ctrlv均可粘贴 准备工作 COS 对象存储(Cloud Object Storage,COS…...
网络团队/电脑优化是什么意思
有一些网友看了前两天的《Linux下应该知道的技巧》希望我能教教他们用awk和sed,所以,出现了这篇文章。我估计这些80后的年轻朋友可能对awk/sed这类上古神器有点陌生了,所以需要我这个老家伙来炒炒冷饭。况且,AWK是贝尔实验室1977年…...
赣州网站建设流程/技成培训网
日志记录是检测和调查应用程序中问题的基本功能。 日志记录框架使将事件数据记录到预配置的日志目标变得很容易。 但是,如果您的日志文件包含非结构化数据,则查询数据成为噩梦。 这是结构化日志起作用的地方。 通过确保要记录的数据以结构化格式编写&am…...
怎样注册一个网站做电商/关键词歌曲
在写VC及标准C程序时,我们常用sprint函数来将数值转换为字符串。可在Keil C中使用这个函数时就要注意了。请看下面例程: /*main.cDesigned by Bill LiuVersion 0.0 Modified last by Bill Liu on 12/19/2021 */#include "main.h" ui8 tem; u…...