国产GD32单片机开发入门(二)GD32单片机详解

news2024/9/24 21:21:53

文章目录

    • 一.概要
    • 二.单片机型号命名规则
    • 三.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软件的加持下就可以进行编程操作了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2073981.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis--其他查询操作和数据库连接池(下下)

序 准备工作: mysql数据库和表的信息更新: DROP TABLE IF EXISTS articleinfo;CREATE TABLE articleinfo (id INT PRIMARY KEY auto_increment,title VARCHAR ( 100 ) NOT NULL,content TEXT NOT NULL,uid INT NOT NULL,delete_flag TINYINT ( 4 ) DEF…

24 messagebox 组件

messagebox 组件使用指南 Tkinter messagebox 组件用于创建弹出式消息框,以显示信息、警告、错误或询问用户问题。它提供了一种简单的方法来向用户展示消息,并等待用户响应。以下是对 messagebox 组件的详细说明和一个使用案例。 messagebox 组件方法 …

数学基础(十)

一、层次聚类 层次聚类是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。 常见聚类树有自下而上合并和自上而下分裂两种方法 …

【计算机网络】mini HTTP服务器框架与代码

注注注:本篇博文都是代码实现细节,但不会进行演示,演示看孪生篇 另外,由于tcp套接字部分本质都是套路,所以就不再进行赘述。 目录 1 请求反序列化2 读取url文件内容3 构建响应 1 请求反序列化 我们肯定会先收到请求&…

VIVO社招入职SHL测评题库题型分析:动机问卷、性格问卷、归纳推理、数字推理、语言推理

VIVO社招入职SHL测评数字推理考什么?例题分析 VIVO社招入职SHL测评归纳推理考什么?例题分析

资产架构端口应用CDNWAF站库分离负载均衡

知识点: 1、资产架构-端口&目录&插件接口&多站点&多应用 2、番外安全-域名&服务器本身&服务厂商&管理人员 3、考虑阻碍-站库分离&CDN&WAF&负载均衡&主机防护 详细点: 1、前置条件-购买使用-云服务器&a…

【AI编程秘籍】Q-learning原理大揭秘!让AI学会自己做决策!

🌟【AI编程秘籍】Q-learning原理大揭秘!让AI学会自己做决策!🚀 Hey小伙伴们,今天要给大家带来的是一个非常酷炫的项目——深入浅出Q-learning原理!无论你是编程新手还是AI老司机,都能从中收获满…

进阶-7.管理工具

管理工具 1.系统数据库2常用工具2.1 mysql2.2 mysqladmin2.3 mysqlbinlog2.4 mysqlshow2.5 mysqldump2.6mysqlimport /source 1.系统数据库 2常用工具 2.1 mysql C:\Users\Tracy>mysql -uroot -p123456 test -e "select * from student"; -------------------- |…

【小沐学Rust】Rust实现TCP网络通信

文章目录 1、简介2、安装2.1 安装Rust2.2 VsCode安装Rust插件 3、快速入门3.1 命令行构建3.2 Cargo构建3.3 Cargo添加依赖 4、基本语法4.1 main 的函数4.2 代码缩进4.3 todo! 宏4.4 println! 宏4.5 变量的使用4.6 元组4.7 结构4.8 枚举4.9 函数 5、TCP通信5.1 测试一5.1.1 TCP服…

【HTML】模拟二级菜单【附源代码】

模拟二级菜单 HTML部分&#xff1a; <!DOCTYPE html>: 声明文档类型为HTML5。<html>: HTML文档的根元素。<head>: 包含文档的元数据&#xff0c;如字符集、标题和样式。 <meta charset"utf-8">: 设置文档的字符编码为UTF-8。<title>:…

企业级web应用服务器之Tomcat

Tomcat介绍 Tomcat 由 Apache 软件基金会下属的 Jakarta 项目开发。它实现了 Java Servlet 和 JavaServer Pages&#xff08;JSP&#xff09;等 Java EE 技术规范&#xff0c;为基于 Java 的 Web 应用程序提供运行环境。 主要特点 轻量级 Tomcat 是一个相对轻量级的服务器&am…

浏览器解析流程

思考 不知道大家是否思考过这几个问题&#xff1a; 当我们在浏览器中输入url后&#xff0c;到底发生了什么&#xff1f; h5&#xff0c;css&#xff0c;js代码执行的顺序是什么&#xff1f;什么情况下会阻塞页面&#xff1f;又有什么办法可以提高页面响应速度呢&#xff1f; 如…

再说圆的面积

在微积分-圆的面积和周长(1)介绍微积分方法求解圆的面积&#xff0c;本文使用蒙特卡洛方法求解圆面积。 取&#xff08;0&#xff0c;1&#xff09;* (0,1)区间&#xff0c;也就是单位圆第一象限的端点区间对应的正方形区间。下面是计算机给出的结果&#xff1a;很显然第一象限…

基于vue3和audio封装的简易音频播放器

样式如图所示 <template><div class"audio-player"><div class"player_top" flex-ac flex-justify-between ><div class"fileName genericTitle" fs-28 l-height-32 height-64 pr-42 flex-ac><span class"t…

UE管理内容 —— FBX Morph Target Pipeline

目录 Naming Setting Up Morph Targets Importing Morph Targets Morph Target 是特定网格体的顶点位置的快照&#xff0c;该网格体在某种程度上已经变形&#xff1b;例如&#xff0c;可以使用一个角色模型&#xff0c;对其面部进行重塑以创建一个面部表情&#xff0c;然后将…

Linux 流式DMA映射(DMA Streaming Mapping)

流式DMA相关的接口为dma_map_sg(),dma_unmap_sg(),dma_map_single(),dma_unmap_single()。流式DMA一般用于已经分配好的内存&#xff0c;然后再对其进行DMA操作&#xff0c;而不是提前申请好一块cache一致性的内存给DMA用。例如从协议栈里发下来的一个包&#xff0c;想通过网卡…

day41| 01背包问题一 01背包问题二(滚动数组篇)416. 分割等和子集 1049.最后一块石头的重量II 494. 目标和 474. 一和零

文章目录 背景介绍01背包问题一思路方法一方法二01背包问题二(滚动数组篇)思路方法一方法二416. 分割等和子集思路方法一1049.最后一块石头的重量II思路方法一494. 目标和思路方法方法二 回溯法474. 一和零思路方法总结由于笔试的时候会判重,而这里面的代码都是我自己写的,…

不同场景下的负载均衡器

负载均衡主要用于分配来自互联网或局域网的请求或任务负载到多个服务器中。 这样做可以避免任何单个服务器的过载&#xff0c;提高响应速度&#xff0c;增加系统的整体处理能力&#xff0c;并确保系统的高可用性和可靠性。 负载均衡器大概可以分为 3 类&#xff0c;包括&#…

Argo/BGC-Argo数据下载

BGC-Argo官方网站 网址&#xff1a; https://biogeochemical-argo.org/data-access.php 信息&#xff1a;提供BGC-Argo位置及剖面预览 数据ftp下载&#xff1a;ftp://ftp.ifremer.fr/ifremer/argo 或者 ftp://usgodae.org/pub/outgoing/argo 问题&#xff1a;dac文件按照数据中…

Image Stride(内存图像行跨度)

When a video image is stored in memory, the memory buffer might contain extra padding bytes after each row of pixels. The padding bytes affect how the image is store in memory, but do not affect how the image is displayed. 当视频图像存储在内存时&#xff0…