当前位置: 首页 > news >正文

单片机开发资源分析实战——以STM32F103ZET6为例子,分析我们的单片机

目录

第一件事情:为什么叫STM32F103ZET6

分析我们的资源手册

第二件事情,关心我们的GPIO引脚输出

第三件事情:去找对应外设的说明部分


本文章隶属于项目:

Charliechen114514/BetterATK: This is a repo that helps rewrite STM32 Common Repositorieshttps://github.com/Charliechen114514/BetterATK

第一件事情:为什么叫STM32F103ZET6

部分说明
1. 产品系列固定为“STM32”,表示基于ARM Cortex-M内核的32位微控制器。
2. 产品类型用一个字母表示产品类型: F:通用型 L:低功耗型 W:无线型
3. 产品子系列用三位数字表示产品子系列,指示特定的功能和性能: 101:基本型 102:USB基本型(USB 2.0全速设备) 103:增强型 105/107:互联型
4. 引脚数用一个字母表示封装的引脚数量: T:36引脚 C:48引脚 R:64引脚 V:100引脚 Z:144引脚 I:176引脚
5. 闪存容量用一个字母或数字表示内置的Flash容量: 6:32KB 8:64KB B:128KB C:256KB D:384KB E:512KB G:1MB
6. 封装类型用一个字母表示封装类型: H:BGA封装 T:LQFP封装 U:VFQFPN封装
7. 温度范围用一个数字表示工作温度范围: 6:-40°C 至 85°C 7:-40°C 至 105°C

这样看,我们的STM32F103ZET6的名称来源就很简单了:

首先显然,这是一款通用型的STM32单片机,此外,还是增强型的单片机。拥有144个引脚,其闪存大小是512KB。还是很能装的。封装类型是LQFP,其工作温度为经典的-40°C 至 85°C。

分析我们的资源手册

笔者在之前的博客中说到了我们的手册可以从哪里来,所以这里我们就不去再重复说下面的资源是从哪里考证的——就是从资源手册的第一页中摘取的。

分类项目详细说明
内核CPUARM 32位 Cortex™-M3
主频最高72MHz
性能1.25DMips/MHz(Dhrystone 2.1)
运算单周期乘法和硬件除法
存储器闪存256KB 至 512KB
SRAM高达 64KB
外部存储支持静态存储器控制器(4个片选),支持 CF卡、SRAM、PSRAM、NOR、NAND
LCD 接口并行接口,兼容 8080 / 6800 模式
时钟、复位、电源管理电压工作电压 2.0 ~ 3.6V(I/O引脚同)
复位上电/断电复位(POR/PDR)、可编程电压监测器(PVD)
振荡器4~16MHz 晶体、内嵌 8MHz 校准 RC 振荡器、40kHz 校准 RC 振荡器、32kHz RTC 校准振荡器
低功耗模式模式睡眠、停机、待机
备用电源VBAT 为 RTC 和后备寄存器供电
模数转换器 (ADC)数量3 个 12 位 ADC
转换时间1μs
输入通道多达 21 个
电压范围0 ~ 3.6V
功能三倍采样保持、温度传感器
数模转换器 (DAC)数量2 通道 12 位
DMA通道数12 通道
支持外设定时器、ADC、DAC、SDIO、I2S、SPI、I2C、USART
调试接口接口串行单线调试(SWD)、JTAG
追踪模块Cortex-M3 内嵌 ETM(嵌入式跟踪模块)
I/O端口数量多达112个快速I/O口
特性51/80/112个多功能双向I/O,可映射至16个外部中断,几乎全部5V容忍
定时器总数多达11个
普通定时器多达4个16位定时器(最多4个通道,支持输入捕获/输出比较/PWM/编码器输入)
高级定时器2个16位(支持死区控制和刹车,用于电机控制)
看门狗独立式 + 窗口型
系统定时器24位 自减型计数器
基本定时器2个16位,用于驱动 DAC
通信接口I2C多达 2 个(支持 SMBus / PMBus)
USART多达 5 个(支持 ISO7816、LIN、IrDA、调制解调控制)
SPI / I2S3个 SPI(18Mbps),其中2个可复用为 I2S
CAN1个 CAN 2.0B 主动接口
USBUSB 2.0 全速
SDIO支持
其他CRCCRC 计算单元
唯一标识96位芯片唯一识别码

第二件事情,关心我们的GPIO引脚输出

我们的单片机最后是依靠GPIO引脚跟外界进行沟通,我们查询了上面的资源之,确定了这个板子是我们的一个可以选择的方案后,下一步,就是看看结合我们的需求,简单的调研一下我们的GPIO引脚的复用情况。

关于GPIO是什么,这个不是我们这篇博客的重点,笔者记得我前前后后说过两次。所以可以翻翻笔者之前的博客,看我的碎碎念。

简单的说,就是我们的GPIO引脚不可能单独的表达含义,我们可以采取复用策略(也就是说把XXXGPIO现在作为一个)

关于GPIO的复用,我们还是要去看资源手册。这一部分的内容一般是Pinouts and pin description那一部分的内容,注意,我们在学习其他的单片机的时候,可能板块不会叫这个名字。

笔者截取了一下我手头的手册的一个截图:

我们一般关心的是Pin name和右侧的一些说明。第一件事情是看我们需要的功能所在的引脚在哪里。比如说。我们的PE9,既可以是操作FSMC的引脚,又可以是TIM1定时器的第一个通道。

第三件事情:去找对应外设的说明部分

这个事情在我们的编程手册中才会涉及到,比如说,我们想要驱动IIC。

就要准备去对应的手册上慢慢翻。ST官方的手册比较全面,会仔细的介绍细节。这里给出的是英文手册的截图。

笔者接触到的流程大致就是如此。

相关文章:

单片机开发资源分析实战——以STM32F103ZET6为例子,分析我们的单片机

目录 第一件事情:为什么叫STM32F103ZET6 分析我们的资源手册 第二件事情,关心我们的GPIO引脚输出 第三件事情:去找对应外设的说明部分 本文章隶属于项目: Charliechen114514/BetterATK: This is a repo that helps rewrite ST…...

uv命令介绍(高性能Python包管理工具,旨在替代pip、pip-tools和virtualenv等传统工具)

文章目录 **主要功能**1. **快速安装和管理 Python 包**2. **生成和管理锁文件 (requirements.lock)**3. **创建虚拟环境**4. **与 poetry 兼容** **核心优势**1. **极快的速度**:基于 Rust 实现,利用多线程和缓存大幅加速依赖解析。2. **轻量且独立**&a…...

React Native进阶(六十):webview实现屏蔽所嵌套web页面异常弹窗

文章目录 一、前言二、解决方案三、注意事项四、拓展阅读 一、前言 在React Native项目集成web页面时,webview嵌套方式是常用方式。如果所嵌套的web页面由于某种不可控因素导致出现错误弹窗信息,webview作为web嵌套方式应该对其行为可控。 React Nativ…...

IS-IS原理与配置

一、IS-IS概述 IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO(International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionLessNet…...

响应式CMS架构优化SEO与用户体验

内容概要 在数字化内容生态中,响应式CMS架构已成为平衡搜索引擎可见性与终端用户体验的核心载体。该系统通过多终端适配技术,确保PC、移动端及平板等设备的内容渲染一致性,直接降低页面跳出率并延长用户停留时长。与此同时,智能S…...

mysql 主从配置

核心概念: 主服务器(Master):负责处理客户端的写操作,并将数据更改记录到二进制日志(binlog)中。从服务器(Slave):负责读取主服务器的二进制日志,…...

Windows下编译安装Qt5.15.0指南

1. 系统要求 操作系统: Windows 7 或更高版本(推荐 Windows 10/11)。 磁盘空间: 至少 20-30 GB(编译过程会生成大量中间文件)。 内存: 建议 8GB 或更高。 编译器: 需要安装 Visual Studio(推荐 MSVC 2017 或 MSVC 2…...

001-JMeter的安装与配置

1.前期准备 下载好JMeter : https://jmeter.apache.org/download_jmeter.cgi 下载好JDK : :Java Downloads | Oracle 中国 下载图中圈蓝的JMeter和JDK就行,让它边下载,我们边往下看 2.为什么要下载并安装JDK ? JMeter 是基于 Java 开发的工具&#…...

kube-score K8S Yaml静态代码分析工具详解

kube-score 是一款专注于 Kubernetes 配置文件的静态代码分析工具,旨在通过自动化检查帮助用户识别资源配置中的潜在问题,并遵循最佳实践以提升集群的安全性、稳定性和性能。以下是其核心功能、使用方法和应用场景的详细解析: 一、核心功能与…...

【Go】Go语言结构体笔记

整体介绍 虽然 Go 语言不是传统意义上的面向对象语言,但它提供了结构体(struct)来组织数据,并且可以为结构体绑定方法,从而达到面向对象的部分效果。 关键知识点包括: 结构体定义与实例化 定义结构体时使用…...

Oracle数据库性能优化全攻略:十大关键方向深度解析与实践指南

文章目录 一、SQL查询优化二、索引优化三、内存管理四、I/O优化五、分区表与分区索引六、并行处理七、统计信息管理八、锁与并发控制九、数据库参数调优十、应用设计优化结论 在当今数据驱动的时代,数据库的性能优化成为了确保企业应用高效运行的关键。Oracle作为业…...

Modern C++面试题及参考答案

目录 解释右值引用的定义及其与左值引用的核心区别 std::move 的实现原理是什么?为什么它本身不执行移动操作? 移动构造函数与拷贝构造函数的调用场景有何不同? 实现一个支持移动语义的类需要遵循哪些原则? 完美转发(Perfect Forwarding)的实现原理及 std::forward 的…...

【单片机通信技术应用——学习笔记三】液晶屏显示技术,取模软件的应用

一、液晶显示技术简介 1.RGB信号线 RGB是一种色彩模式,是工业界的一种颜色标准,是通过红(R)、绿(G)、蓝(B)三个颜色通道的变化,以及它们相互之间的叠加来得到各式各样的…...

Git push后撤销提交

一、介绍 当某次更改完工程后,push了本地仓库到云端,但是发现有地方改错了,想撤销这次推送,或者某次提交就更改了很小一部分,想和本地这次修改的合并为一次推送,省的在云端显示特别多次提交,显得…...

React多层级对象改变值--immer

reduxjs/toolkit底层就是immer,,,所以在使用redux的时候,直接赋值,就会响应式的数据 如果不使用reduxjs/toolkit,可以自己使用immer来实现 安装immer npm install immer引入produce函数,,prod…...

17153. 班级活动(蓝桥杯-python)

代码写法 import os import sys# 请在此输入您的代码n int(input()) a list(map(int,input().split()))da {} flag1 0 flag2 0for i in a:da[i] da.get(i,0)1for i,j in da.items():if j 1:flag1 1if j > 2:flag2 j-2if flag2 > flag1:print(flag2) else:print(…...

html5-qrcode前端打开摄像头扫描二维码功能

实现的效果如图所示,全屏打开并且扫描到二维码后弹窗提醒,主要就是使用html5-qrcode这个依赖库,html5-qrcode开源地址:GitHub - mebjas/html5-qrcode: A cross platform HTML5 QR code reader. See end to end implementation at:…...

【后端】【Django】【ORM】SearchFilter 详解

SearchFilter 详解 SearchFilter 是 Django REST Framework(DRF)提供的一个过滤器,用于在 ModelViewSet 视图集中支持搜索功能。它允许用户通过 URL 查询参数(默认 search)对多个字段进行模糊匹配。 一、基本用法 &a…...

python 实现一个简单的window 任务管理器

import tkinter as tk from tkinter import ttk import psutil# 运行此代码前,请确保已经安装了 psutil 库,可以使用 pip install psutil 进行安装。 # 由于获取进程信息可能会受到权限限制,某些进程的信息可能无法获取,代码中已经…...

使用密码连接Redis服务的两种方式

说明:本文介绍连接需要密码的Redis服务的两种方式 方式一 连接时,携带密码,如下: redis-cli -a [密码]如下: 有两个问题: 密码直接放在命令里,可通过 history 找到,不安全&#x…...

基于C语言实现的观察者模式 以温度监控系统为例

场景为 温度监控系统:当温度传感器检测到温度变化时,自动通知所有注册的显示器(如LCD、手机App)更新显示。 场景描述 主题(Subject):温度传感器,负责检测温度变化并通知观察者。 观察者(Observer):显示器(LCD显示器、手机App),订阅温度数据并在温度变化时更新显…...

英伟达黄仁勋2025GTC演讲深度解析:液冷GPU、AI工厂、机器人AI…...

目录 一、技术产品与架构升级:从芯片到算力工厂1. 新一代GPU与计算架构2. AI工厂与算力操作系统 二、AI技术演进:从生成式到物理AI1. AI发展的三大阶段2. 推理算力需求爆炸式增长 三、生态合作与行业落地1. CUDA生态与开源工具2. 跨行业合作案例 四、未来…...

学习Flutter:搭建第一个 Flutter 应用

引言 曾几何时,我们还在为 Android 和 iOS 各写一套 UI 而头疼,做一个需求像是两家公司在竞争。但 Flutter 的出现,改变了这一切。它让跨平台开发变得可能,让一个程序员的代码可以同时运行在多个设备上,省时省力&…...

lua实现面向对象(封装/继承/多态)

lua实现面向对象封装/继承/多态 lua实现面向对象(封装/继承/多态) lua实现面向对象(封装/继承/多态) print("***********面向对象**********") print("*************封装************") --表就是表现类的一种形式 --实现了new方法:本质上是创建一个空表&a…...

WX小程序

下载 package com.sky.utils;import com.alibaba.fastjson.JSONObject; import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.Cl…...

【模拟面试】计算机考研复试集训(第十一天)

文章目录 前言一、专业面试1、什么是面向对象编程?2、软件工程的主要模型有哪些?3、Cache和寄存器的区别4、卷积层有哪些参数,它们代表什么?5、你有读博的打算吗?6、你的师兄/姐临近毕业,仍做不出成果&…...

【深度技术揭秘】 Android SystemUI锁屏界面动态布局重构:横竖屏智能适配指南

1. 问题背景与需求拆解 在Android 13系统定制中,发现平板横屏锁屏界面存在两大视觉问题: 时钟控件尺寸过大,与竖屏样式不统一 解锁图标位置异常,横向居中而非顶部居中(如图示) 需实现: 横竖屏…...

AI比人脑更强,因为被植入思维模型【20】卡尼曼双系统理论

定义 卡尼曼双系统理论思维模型是由诺贝尔经济学奖得主丹尼尔卡尼曼提出的,该理论认为人类的思维系统可以分为两个相互关联但又具有不同特点的子系统,即系统1(快思考)和系统2(慢思考)。系统1是基于直觉、经…...

修改服务器windows远程桌面默认端口号

修改服务器windows远程桌面默认端口号 在Windows服务器上修改远程桌面协议(RDP)的默认端口(3389)可以增强服务器的安全性,减少被恶意扫描和攻击的风险。以下是修改远程端口的详细步骤: 按 Win R 打开运行…...

3.22模拟面试

前端模拟面试(1 年经验) 面试时长:40-60 分钟 面试难度:初中级 技术栈:Vue 3、TypeScript、微前端(qiankun)、Webpack/Rspack、Ant Design、组件库迁移 一、基础知识 HTML & CSS 介绍一下…...

MySQL高频八股——索引

大家好,我是钢板兽! 今天来更新MySQL高频八股的最后一篇文章,包括很多内容:索引分类、最左匹配原则、范围查询使联合索引失效、索引下推、给联合查询加索引、索引失效情况。 在MySQL的第一篇八股文章,我写了MySQL的索…...

二分查找(java)

文章目录 1. 基本原理2. 步骤3.练习 ​ 1. 基本原理 二分查找(Binary Search)是一种基于分治思想的高效搜索算法,核心逻辑是通过不断缩小搜索区间来定位目标值。其前提是数据必须为有序数组,时间复杂度为 O(log n)。 2. 步骤 1.…...

2025_0321_生活记录

刚刚写完待会儿早上要汇报的文档,看了一眼时间,现在已经是凌晨2点多了。一直说要早睡,但是一直都没做到。。。算了,不苛求自己了。 昨天是春分,春分秋分,昼夜平分。不知不觉就到春天了,但房间里…...

【LangChain入门 6 Chain组件】单链和多链

一、单链 1.1 LCEL的语法 | 为关键字,使用 | 作为链接符号 from langchain_core.output_parsers import StrOutputParser from langchain_ollama import ChatOllama llm ChatOllama( model"deepseek-r1:7b") parser StrOutputParser() # 加了这段后&…...

决策树基础

决策树 定义 从根节点开始,也就是拥有全部的数据,找一个维度对根节点开始划分, 划分后希望数据整体的信息熵是最小的, 针对划分出来的两个节点,我们继续重复刚才的划分方式寻找信息熵最小的维度和阈值。 递归这个…...

MATLAB+Arduino控制小车直行+转向

1 硬件 两轮车arduino板子 硬件连接 注意:电机连线。 这个小车的电机电流小,可以用arduino板子直接驱动,如果是大电流的,需要你自带电池,供电用用你的电池(如移动电源),控制信号&…...

【uni-app】引用公共组件

目录 一、建立公共组件 1.1新建vue文件 1.2编写公共文件代码 1.3使用 注意事项 一、建立公共组件 1.1新建vue文件 在公共组件文件目录下新建所需要的功能文件 1.2编写公共文件代码 按需求写对应功能的代码 1.3使用 在需要使用的文件下引用公共组件 注意事项 想要使用s…...

六西格玛遇上Python:统计学的高效实践场

在当今数据驱动的时代,数据分析和可视化工具成为了各行业优化流程、提升质量的关键手段。六西格玛(Six Sigma)作为一种以数据为基础、追求完美质量的管理理念,其实施依赖于一系列基础工具的灵活运用。而Python,凭借其强…...

虚幻基础:UI

文章目录 控件蓝图可以装载其他控件蓝图可以安装其他蓝图接口 填充:相对于父组件填充水平框尺寸—填充—0.5:改变填充的尺寸填充—0.5:改变与父组件的距离 锚点:相对于父组件的控件坐标系原点,屏幕比例改变时&#xff…...

事件、页面跳转、wxml语法——微信小程序学习笔记

1. 事件 1.1 事件绑定 <!--pages/infoPage/infoPage.wxml--><button type"primary" bind:tap"childrenClicked">子按钮</button> // pages/infoPage/infoPage.jsPage({childrenClicked(){console.log("childrenClicked")} …...

关于kafka的一些知识总结

Kafka 1. 基本知识 1.1 前置知识 topic表示一个类型/业务的数据的组为方便扩展&#xff0c;提高吞吐率&#xff0c;一个topic分为多个partition。配合分区的设计&#xff0c;提出消费者组的概念&#xff0c;每个消费者并行消费&#xff0c;同时&#xff0c;一个分区的数据&a…...

系统架构书单推荐(一)领域驱动设计与面向对象

本文主要是个人在学习过程中所涉猎的一些经典书籍&#xff0c;有些已经阅读完&#xff0c;有些还在阅读中。于我而言&#xff0c;希望追求软件系统设计相关的原则、方法、思想、本质的东西&#xff0c;并希望通过不断的学习、实践和积累&#xff0c;提升自身的知识和认知。希望…...

JS—原型与原型链:2分钟掌握原型链

个人博客&#xff1a;haichenyi.com。感谢关注 一. 目录 一–目录二–原型三–原型链 二. 原型 什么是原型&#xff1f; 每个JavaScript对象都有一个原型&#xff0c;这个原型也是一个对象。比方说 function Person(name) {this.name name; } let person new Person(&quo…...

微软产品的专有名词和官方视频教程

Legend/Acronyms (D) Microsoft Documentation (V) Video (B) Blog (S) Site (IG)<...

OpenCV旋转估计(5)图像拼接的一个函数waveCorrect()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 waveCorrect 是OpenCV中用于图像拼接的一个函数&#xff0c;特别适用于全景图拼接过程中校正波浪形失真&#xff08;Wave Correction&#xff09…...

基于3DMax与Vray引擎的轻量级室内场景渲染实践

欢迎踏入3DMAX室内渲染的沉浸式学习之旅!在这个精心设计的实战教程中,我们将携手揭开3DMAX与Vray这对黄金搭档在打造现实室内场景时的核心奥秘。无论您是渴望入门的3D新手,还是追求极致效果的专业设计师,这里都将为您呈现从场景蓝图构建到光影魔法施加的完整技术图谱。我们…...

项目日记 -云备份 -服务器配置信息模块

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【项目日记-云备份】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 代码已上传 gitee 目录 前言配置信息文件文件配置类getInstance 获得实例readConfigFile 读取配置信息文件 测试 #mermaid-svg-ewlCpjdOf0q0VTLI {font-family:…...

Linux冯诺依曼体系与计算机系统架构认知(8)

文章目录 前言一、冯诺依曼体系冯•诺依曼体系结构推导内存提高冯•诺依曼体系结构效率的方法你用QQ和朋友聊天时数据的流动过程与冯•诺依曼体系结构相关的一些知识 二、计算机层次结构分析操作系统(Operator System)驱动层的作用与意义系统调用接口(system call)用户操作接口…...

23.linux下电脑健康检查

电脑健康检查 硬盘 工具 sudo apt-get install smartmontools检查命令 sudo smartctl -a /dev/sdb1输出结果 # smartctl 7.2 2020-12-30 r5155 [x86_64-linux-6.8.0-52-generic] (local build) # Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools…...

使用HAI来打通DeepSeek的任督二脉

一、什么是HAI HAI是一款专注于AI与科学计算领域的云服务产品&#xff0c;旨在为开发者、企业及科研人员提供高效、易用的算力支持与全栈解决方案。主要使用场景为&#xff1a; AI作画&#xff0c;AI对话/写作、AI开发/测试。 二、开通HAI 选择CPU算力 16核32GB&#xff0c;这…...