单片机开发资源分析的实战——以STM32G431RBT6为例子的单片机资源分析

目录

第一点:为什么叫STM32G431RBT6

从资源手册拿到我们的对STM32G431RBT6的资源描述

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

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


第一点:为什么叫STM32G431RBT6

对于命名规则不太熟悉的朋友看这里:

部分说明
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

现在,我们以STM32G431RBT6作为一个例子进行分析

STM32G431RBT6的命名遵循STM32系列的命名规则,每个部分代表特定的含义。以下是对该型号各部分的解析:

部分含义
STM32表示意法半导体(STMicroelectronics)基于ARM Cortex-M内核的32位微控制器系列。
G代表产品系列。G系列通常表示具有高性能模拟外设和数字功能的微控制器。
431指定产品的子系列和特性。具体来说,'4'表示Cortex-M4内核,'31'表示具体的功能配置,如存储容量和外设组合。
R表示封装的引脚数量。'R'通常代表64引脚封装。
B指定片上Flash存储器的容量。'B'通常表示128 KB的Flash容量。
T表示封装类型。'T'通常代表LQFP(低引脚数四方扁平封装)。
6指定工作温度范围。'6'通常表示-40°C至85°C的工业级温度范围。

从资源手册拿到我们的对STM32G431RBT6的资源描述

特性类别详细说明
核心Arm® 32 位 Cortex®-M4 CPU,带浮点单元(FPU)和数字信号处理(DSP)指令,最高运行频率 170 MHz,性能达 213 DMIPS。
数学硬件加速器- CORDIC:用于三角函数计算加速。- FMAC:滤波数学加速器。
存储器- Flash:128 KB,支持 ECC,具备专有代码读取保护(PCROP)和可安全存储区,另有 1 KB OTP(一次性可编程存储器)。- SRAM:22 KB,前 16 KB 实现硬件奇偶校验。- CCM SRAM:10 KB,用于指令和数据总线,具备硬件奇偶校验。
复位和电源管理- 上电/掉电复位(POR/PDR/BOR)。- 可编程电压检测器(PVD)。- 低功耗模式:睡眠、停止、待机和关机。- VBAT 电源用于 RTC 和备份寄存器。
时钟管理- 4 至 48 MHz 晶体振荡器。- 32 kHz 振荡器,带校准功能。- 内部 16 MHz RC 振荡器,带 PLL 选项(±1%)。- 内部 32 kHz RC 振荡器(±5%)。
I/O 接口- 最多 86 个快速 I/O 引脚。- 所有引脚均可映射到外部中断向量。- 多个引脚具备 5V 耐受能力。
DMA 控制器12 通道 DMA 控制器。
ADC2 个 ADC,转换时间 0.25 µs,支持多达 23 个通道,分辨率最高可达 16 位,具备硬件过采样功能,转换范围 0 至 3.6 V。
DAC4 个 12 位 DAC 通道:- 2 个带缓冲的外部通道,速率 1 MSPS。- 2 个无缓冲的内部通道,速率 15 MSPS。
比较器4 个超高速轨到轨模拟比较器。
运算放大器3 个运算放大器,可用作可编程增益放大器(PGA),所有端子均可访问。
内部电压参考缓冲器支持三种输出电压:2.048 V、2.5 V、2.9 V。
定时器共 14 个定时器:- 1 个 32 位定时器和 2 个 16 位定时器,支持多达四个输入捕获/输出比较/PWM 或脉冲计数器,以及正交(增量)编码器输入。- 2 个 16 位 8 通道高级电机控制定时器,支持多达 8 个 PWM 通道,具备死区时间生成和紧急停止功能。- 1 个 16 位定时器,具备 2 个输入捕获/输出比较,一个输出比较互补/PWM,死区时间生成和紧急停止功能。- 2 个 16 位定时器,具备输入捕获/输出比较/输出比较互补/PWM,死区时间生成和紧急停止功能。- 2 个看门狗定时器(独立和窗口)。- 1 个 SysTick 定时器:24 位向下计数器。- 2 个 16 位基本定时器。- 1 个低功耗定时器。
RTC日历型实时时钟,具备闹钟功能,可在停止/待机模式下定期唤醒。
通信接口- 1 个 FDCAN 控制器,支持灵活的数据速率。- 3 个 I2C 接口,支持 Fast Mode Plus(1 Mbit/s),具备 20 mA 电流下拉能力,支持 SMBus/PMBus,且可在停止模式下唤醒。- 4 个 USART/UART 接口,支持 ISO 7816 接口、LIN、IrDA、调制解调器控制。- 1 个低功耗 UART(LPUART)。- 3 个 SPI 接口,支持 4 至 16 位可编程帧,其中 2 个支持复用半双工 I2S 接口。- 1 个串行音频接口(SAI)。- USB 2.0 全速接口,支持链路电源管理(LPM)和电池充电检测(BCD)。- 红外接口(IRTIM)。- USB Type-C™ / USB 电源传输控制器(UCPD)。
其他特性- 真随机数生成器(RNG)。- CRC 计算单元。- 96 位唯一 ID。- 开发支持:串行线调试(SWD)、JTAG、嵌入式跟踪宏单元™(ETM)。

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

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

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

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

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

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

我们一般关心的是Pin name和右侧的一些说明。我们一般都是看Alternate functions部分来分析这个GPIO可以额外的做啥

这里数据非常多,笔者不一一枚举说明。可以到笔者仓库的bonus部分拿取数据手册

BetterATK/Documentations/bonus/datasheets at main · Charliechen114514/BetterATK · GitHubThis is a repo that helps rewrite STM32 Common Repositories - BetterATK/Documentations/bonus/datasheets at main · Charliechen114514/BetterATKhttps://github.com/Charliechen114514/BetterATK/tree/main/Documentations/bonus/datasheets

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

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

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

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

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

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

相关文章

Android PC 要来了?Android 16 Beta3 出现 Enable desktop experience features 选项

在之前的 《Android 桌面窗口新功能推进》 我们就聊过,Google 就一直在努力改进 Android 的内置桌面模式,例如添加了适当的窗口标题、捕捉窗口的能力、悬停选项、窗口大小调整、最小化支持、app-to-web 等。 比如在搭载 Android 15 QPR 1 Beta 2 的 Pix…

IP关联是什么?怎么避免?

在跨境电商的道路上,大家好!今天想和大家聊一聊一个非常重要的话题,那就是IP关联的问题。在商业活动中,了解如何避免IP关联对保护我们宝贵的商铺至关重要。接下来,我们将深入探讨IP关联的概念、影响及如何有效防止这一…

行为模式---状态模式

概念 状态模式是一种行为模式,用于在内部状态改变的时候改变其行为。它的核心思想就是允许一个对象在其内部状态改变的时候改变它的行为。状态模式通过将对象的状态封装成独立的类,并将其行为委托给当前的状态对象,从而使得对象行为随着状态…

目标检测中衡量模型速度和精度的指标:FPS和mAP

“FPS”和“mAP”分别衡量了模型的速度和精度。 FPS(Frames Per Second) 定义:FPS是“每秒传输帧数”的缩写,用于衡量计算机视觉系统(如目标检测、图像识别等)的实时性能。它表示系统每秒钟能够处理的图像…

网页复印机:只需一个网址,一键克隆任何网站!(可根据需求生成/优化相关代码)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 网页代码克隆神器:一键复刻精美设计,提升前端开发效率 📒🛠️ 使用⚓️ 相关链接 ⚓️📖 介绍 📖 每天对着别人的精美网站漏出羡慕的眼神,却苦于自己的前端技术不够硬,难以完美复刻?或者为了赶项目进度,不得不重复…

go语言中数组、map和切片的异同

在Go语言中,数组、切片(slice)和映射(map)是三种常用的数据结构,它们在用途和特性上有显著差异。以下是它们的异同总结: 相同点 集合类型:三者都用于存储一组数据。 元素访问&#…

前端Vue3图像编辑功能(并生成mask图)

存在一个需求同豆包的图像生成的区域重绘功能,类似与下面这种 拆解一下需求, 1、鼠标移动上图像画面时出现跟随鼠标移动的空心圆形,移出图像画面、鼠标点击后、鼠标按下移动时消失,鼠标松开再次出现。 2、鼠标按下出现圆形透明颜色大小同空心圆形、鼠标按下移动形成轨迹,…

解决:ModuleNotFoundError: No module named ‘_sqlite3‘

报错: from _sqlite3 import * ModuleNotFoundError: No module named _sqlite3安装sqlite3支持组件: sudo apt-get install libsqlite3-dev进入之前下载的python包下,重新编译和安装Python ./configure --enable-loadable-sqlite-extensions make &a…

【Go语言圣经3.6】

目标 概念 常量与变量的主要区别在于: 不可变性:常量在声明后其值就固定下来,不能再被修改。这保证了程序运行时不会因意外修改而导致错误。 使用不可变数据(例如数学常数 π)可以避免意外修改带来的问题 编译期计算…

基于x11vnc的ubuntu远程桌面

1、安装VNC服务 sudo apt install x11vnc -y2、创建连接密码 sudo x11vnc -storepasswd3、安装lightdm服务 x11vnc 在 默认的 GDM3 中不起作用,因此需要使用 lightdm 桌面管理环境 sudo apt install lightdm -y切换至lightdm,上一步已经切换则跳过该…

leetcode日记(105)买卖股票的最佳时机Ⅱ

原本以为是一个很难想的动态规划&#xff0c;没想到是最简单的贪心…… 如果实在想不出就画个折线图&#xff0c;只买上涨的就行了&#xff0c;所有上涨的段都取到。 真的没想到会这么简单…… class Solution { public:int maxProfit(vector<int>& prices) {int …

手写发布订阅模式

手写实现一个简易的发布订阅模式&#xff0c;通常有以下几个关键点&#xff1a; 订阅&#xff08;subscribe&#xff09;&#xff1a;用户订阅特定的事件&#xff0c;当该事件触发时&#xff0c;执行与事件关联的回调函数。 发布&#xff08;publish&#xff09;&#xff1a;当…

docker入门篇

使用docker可以很快部署相同的环境,这也是最快的环境构建,接下来就主要对docker中的基础内容进行讲解.Docker 是一个用于开发、交付和运行应用程序的开源平台&#xff0c;它可以让开发者将应用程序及其依赖打包到一个容器中&#xff0c;然后在任何环境中运行这个容器&#xff0…

Qt Widgets、Qt Quick

一、核心概念 ‌Qt Widgets‌ Qt框架中的传统桌面UI开发组件库&#xff0c;基于C实现&#xff0c;提供按钮、文本框等控件‌。适用于需要深度集成操作系统底层功能或复杂业务逻辑的桌面应用‌。 ‌Qt Quick‌ QML的标准库和工具包&#xff0c;提供预置的视觉组件&#xff08;如…

LinuX---Shell正则表达式

正则表达式 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里&#xff0c;正则表达式通常被用来检索、替换那些符合某个模式的文本。在Linux中&#xff0c;grep&#xff0c;sed&#xff0c;awk等命令都支持通过正则表达式进行模式匹配…

nginx配置txt文件点击链接后下载

手上有一个txt文件&#xff0c;上传到文件服务器后&#xff0c;点击路径是在浏览器里直接打开了&#xff0c;用户需要的是下载到本地 nginx新增配置 location ~* /ExcelDownload/envScript/(.\.txt) {add_header Content-Disposition "attachment; filename$1";add…

相机光学(四十七)——相纸材质

1. 光面相纸 光面相纸表面光滑&#xff0c;亮度高&#xff0c;反光性好&#xff0c;能够呈现出清晰、鲜艳的图像效果&#xff0c;适合用于表现色彩艳丽、反差要求较高的题材&#xff0c;如产品照、艺术照和风景照。然而&#xff0c;这种相纸容易沾上指纹和灰尘。 2. 绒面相纸…

LabVIEW 线性拟合

该 LabVIEW 程序实现了 线性拟合&#xff08;Linear Fit&#xff09;&#xff0c;用于计算给定一组数据点的斜率&#xff08;Slope&#xff09;和截距&#xff08;Intercept&#xff09;&#xff0c;并将结果可视化于 XY Graph 中。本案例适用于数据拟合、实验数据分析、传感器…

Swift 并发中的任务让步(Yielding)和防抖(Debouncing)

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

【Android】RuntimeShader 应用

1 简介 RuntimeShader 是 Android 13&#xff08;T&#xff09;中新增的特性&#xff0c;用于逐像素渲染界面&#xff0c;它使用 AGSL&#xff08;Android Graphics Shading Language&#xff09;编写着色器代码&#xff0c;底层基于 Skia 图形渲染引擎。官方介绍详见 → Runti…