STM32系统参数和结构

news2025/1/10 21:14:15

系列文章目录

STM32单片机系列专栏

C语言术语和结构总结专栏

文章目录

1. 基本参数

2. 片上资源(外设)

3. STM32系列命名规则

4. 系统结构

5. 引脚定义

6. 启动配置

7. 最小系统电路

8. 型号分类和缩写


1. 基本参数

STM32F103C8T6

系列:主流系列STM32F1

内核:ARM Cortex-M3

主频:72MHz

RAM:20K(SRAM)(运行内存)

ROM:64K(Flash)(程序储存器)

供电:2.0~3.6V(标准3.3V)

封装:LQFP48(48个引脚)

2. 片上资源(外设)

英文

名称

NVIC嵌套向量中断控制器嵌套向量中断控制器,负责管理和处理中断,允许动态优先级和中断嵌套。

SysTick

系统滴答定时器

系统定时器,可以用作操作系统的心跳定时器或者提供一个简单的不依赖外部定时器的延时功能。
RCC

复位和时钟控制

复位和时钟控制器,控制和管理微控制器的时钟分配,包括系统时钟、外设时钟以及时钟源的选择和配置。

GPIO

通用IO口

通用输入输出端口,用于数字信号的输入和输出。

AFIO

复用IO口

可重映射的输入输出端口,可以配置GPIO引脚以用于不同的外设功能。

EXTI

外部中断

外部中断接口,允许外部或内部事件触发中断。

TIM

定时器

定时器,用于计时、计数、产生PWM波形等功能。

ADC

模数转换器

模拟到数字转换器,将模拟信号转换为数字信号进行处

DMA

直接内存访问

直接内存访问控制器,允许外设直接读写内存,减轻CPU负担。

USART

同步/异步串口通信

通用同步/异步接收发射器,用于串行通信。

I2C

I2C通信

用于芯片间通信的串行总线。

SPI

SPI通信

串行外设接口,用于高速串行通信。

CAN

CAN通信

控制器局域网,用于汽车和工业控制中的网络通信。

USB

USB通信

通用串行总线,用于连接USB设备。

RTC

实时时钟

实时时钟,保持时间计数即使在主电源断电的情况下。

CRC

CRC校验

循环冗余校验,用于检测数据在传输或存储过程中的错误。

PWR

电源控制

电源控制外设,管理电源和睡眠模式。

BKP

备份寄存器

备份寄存器,通常用于存储关键数据,即使在微控制器断电时也会被保留。

IWDG

独立看门狗

独立看门狗定时器,用于系统恢复,防止系统挂起。

WWDG

窗口看门狗

窗口看门狗定时器,用于系统恢复,比IWDG更复杂的行为设置。

DAC

数模转换器

数字到模拟转换器,将数字信号转换为模拟信号输出。

SDIO

SD卡接口

安全数字输入输出,用于SD卡通信。

FSMC

可变静态存储控制器

灵活的静态存储器控制器,用于连接外部存储如SRAM、PSRAM、NOR/NAND内存。

USB OTG

USB主机接口

USB设备即插即用,使设备可以充当主机或设备角色。

 

3. STM32系列命名规则

 

4. 系统结构

 

对于系统结构,STM32的CPU核心基于ARM Cortex-M3架构。Icode是指令总线,Dcode是数据总线,Icode和Dcode是用来连接flash闪存的,flash中储存的就是程序,Icode用来加载程序指令,Dcode用来加载数据。system为系统总线,连接到SRAM(静态随机存取内存,用于程序的运行时数据存储)和FSMC(外部存储控制器,用于连接外部存储设备)

AHB(先进高性能总线)用于连接高速的内核和某些高速外设,通过两个桥接连接APB(先进外设总线)用于连接较低速的外设。因为AHB和APB的总线协议和总线速度,还有数据传送格式的差异,所以需要加两个桥接,来完成数据的转换和缓存。

DMA提供了高效的数据传输方式,无需CPU介入就能在内存和外设之间传输数据。

5. 引脚定义

6. 启动配置

启动模式选择表

BOOT1BOOT0启动模式说明
X0主闪存存储器代码从主闪存存储器的用户程序区域开始执行
01系统存储器代码从系统存储器开始执行,通常是用于内部的引导加载程序
11内嵌SRAM代码从内嵌SRAM开始执行
  • 主闪存存储器: 这是最常用的启动模式,用于执行用户存放在主闪存区的应用程序代码。
  • 系统存储器: 这个模式通常包含了厂商提供的引导程序,可用于系统的固件升级,也可以作为使用串口下载。
  • 内嵌SRAM: 这个模式允许直接从SRAM执行代码,可以用于开发阶段的调试。

当系统复位时,系统时钟会在4个时钟周期内选择BOOT1和BOOT0引脚的配置来确定启动模式。如果需要在系统运行中动态修改启动模式,就需要改变这两个引脚的状态。

“X”代表“不关心”的状态,意味着在BOOT0为0的情况下,BOOT1的状态不会影响启动模式的选择,因为不管BOOT1是0还是1,系统都会从主闪存启动。

7. 最小系统电路

仅靠一个单片机芯片,无法实现功能,所以需要设计一个确保微控制器能够正常上电并运行的最基础电路配置。

晶振电路
首先一个8mhzd主时钟晶振,stm32的主晶振一般都是8mhz,8mhz经过内部锁循环倍频,得到72mhz的主频。两个引脚连接到stm32的5,6号引脚,另外还需要接两个20pf的电容,作为启震电容,电容另一端接地。

复位电路

NRST: 微控制器的复位引脚,用于重启微控制器,使其从初始状态开始运行。它是低电平复位,复位电路上电的瞬间,电容没有电,电源通过电阻向电容充电,此时电容呈现短路状态,所以nrst就会产生低电平,电容充满电后电容相当于断路,这时nrst上拉为高电平。

R1: 上拉电阻,值为10kΩ。它确保在没有外部复位信号的情况下,NRST引脚保持高电平状态,微控制器不会进入复位状态。

C3: 与NRST引脚相连的去耦电容,0.1uF,它帮助滤除由外部噪声引起的误触发复位事件,确保复位行为是确定进行的。

调试接口

用于串行线调试(SWD)接口的引脚,用于程序调试。

8. 型号分类和缩写

这部分也是建立工程文件时启动文件的选择方式。

缩写(启动文件)类型Flash容量型号
LD_VL小容量产品线低密度16~32KSTM32F100
MD_VL中容量产品线低密度64~128KSTM32F100
HD_VL大容量产品线低密度256~512KSTM32F101/102/103
LD小容量产品16~32KSTM32F101/102/103
MD中容量产品64~128K

STM32F101/102/103

HD大容量产品 ​​

256~512K

STM32F101/102/103

XL

加大容量产品

大于512K

STM32F101/102/103

CL

互联型产品

-

STM32F105/107

 

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

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

相关文章

【工具】录屏软件Captura安装使用及ffmpeg下载配置

开启技术视频创作,录屏软件林林总总,适合的、习惯的最好。 录屏软件Captura的使用及ffmpeg下载配置 1.Captura下载、安装2.FFmpeg下载、配置3.Captura屏幕录制试用、录制视频效果 1.Captura下载、安装 Captura主要是一个免费开源的录屏软件&#xff0c…

动态创建链表 与头插法 和头插法的优化

1.代码一 思想:在main函数中实行三次头插法,在insertFromHead()函数中,主要创建新的节点new,开辟空间,输入想要增加的data;根据头节点的情况来判断插入, 如果head NUL…

DSPy入门:告别指令提示,拥抱编程之旅!

原文:intro-to-dspy-goodbye-prompting-hello-programming 2024 年 2 月 27 日 DSPy框架如何通过用编程和编译代替提示来解决基于LLM的应用程序中的脆弱性问题。 目前,使用大型语言模型(LLMs)构建应用程序不仅复杂而且脆弱。典型的pipelines通常使用pr…

Xinlinx FPGA内的存储器BRAM全解

目录 一、总体概述1.7系列FPGA的BRAM特点2.资源情况 二、BRAM分类1.单端口RAM2.简单双端口RAM3.真双端口RAM 三、BRAM的读写1、Primitives Output Registers读操作注意事项2.三种写数据模式(1)Write_First(2)Read_First&#xff0…

梯度,hesse阵与Jacobi矩阵

分清楚三个量的含义和计算方法。 梯度 表征的是一个列向量,是相对于某个方向而言的,但是某个方向上可能有多个变量,所以梯度不是简单的直接求偏导,并且说了,它是一个列向量,所以, 我们设 f : …

从0到1—POC编写基础篇(二)

接着上一篇 POC常用基础模块 urllib 模块 Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 urllib 包 包含以下几个模块: ●urllib.request - 打开和读取 URL。 ●urllib.error - 包含 urllib.request 抛出的异常。 ●urllib.parse - …

Access2019直接将数据导入SQL Server数据库中,再直接链接回来

Access2019 的数据表等,除了通过 SSMA 导入数据库外,还可以利用access2019 自身的外部数据导出功能来达到目的。本文将详细介绍这一操作过程。 一、命令行操作阶段 1.以SA这一超级用户登录SQL Server,创建一个数据库,例如“个人…

【java毕业设计】 基于Spring Boot+mysql的高校心理教育辅导系统设计与实现(程序源码)-高校心理教育辅导系统

基于Spring Bootmysql的高校心理教育辅导系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于Spring Bootmysql的高校心理教育辅导系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及…

C++中的list类模拟实现

目录 list类模拟实现 list类节点结构设计 list类非const迭代器结构设计 迭代器基本结构设计 迭代器构造函数 operator()函数 operator*()函数 operator!()函数 operator(int)函数 operator--()函数 operator--(int)函数 operator()函数 operator->()函数 list…

MATLAB 数据类型

MATLAB 数据类型 MATLAB 不需要任何类型声明或维度语句。每当 MATLAB 遇到一个新的变量名,它就创建变量并分配适当的内存空间。 如果变量已经存在,那么MATLAB将用新内容替换原始内容,并在必要时分配新的存储空间。 例如, Tota…

Java虚拟机类加载机制详细总结

1、概述 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 2、类加载的时机 一个类型从被加载到虚拟机内存中开始&#xff…

idea自定义配置文件的注释

打开 IntelliJ Idea 软件 依次找到 File—>Editor—>File and Code Templates 设置 Files 下的Class、Interface、Enum等 输入下面的内容 /** * description: ${NAME} * date: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE} * author: author **/

ElasticSearch总结二

正向索引和倒排索引: 正向索引: 比方说我这里有一张数据库表,那我们知道对于数据库它一般情况下都会基于i d去创建一个索引,然后形成一个b树。 那么你根据i d进行检索的速度,就会非常的快,那么这种方式的…

VMware 15 安装centos7虚拟机

1. 安装前准备 1.1 下载centos 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 下载需要版本的centos版本 直达链接 centos7.9 : centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 .基础使用的话安装选择这个就行了,大概下载几分钟 2. …

iOS ------代理 分类 拓展

代理协议 一,概念: 代理,又称委托代理(delegate),是iOS中常用的一种设计模式。顾名思义,它是把某个对象要做的事委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理…

【简单讲解下如何学习C++】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

P1106 删数问题

本题为洛谷&#xff1a; #include<iostream> #include<string> using namespace std; int main(){string n;int k;cin>>n>>k;while(k--){for(int i0;i<n.length();i){if(n[i]>n[i1]){n.erase(i,1); break;} }for(int i0;i<n.length()-1&&…

uniapp APP检测更新

需求&#xff1a; 1.首次进入APP给出弹窗提示是否存在最新版本APP&#xff0c;可选择更新或者取消 2.选择取消后&#xff0c;在使用期间不再弹出该弹窗 3.在设置中增加按钮&#xff0c;点击进行版本检测&#xff0c;再弹窗 效果图&#xff1a; 使用到的插件&#xff1a;APP升…

如何理解自然语言处理中的位置编码(Positional Encoding)

在自然语言处理和特别是在使用Transformer模型中,位置编码(Positional Encoding)是一个关键的概念。它们的作用是为模型提供序列中各个元素的位置信息。由于Transformer架构本身并不像循环神经网络(RNN)那样具有处理序列的固有能力,位置编码因此显得尤为重要。 为什么需…

大语言模型微调过程中的 RLHF 和 RLAIF 有什么区别?

目前想要深入挖掘大型语言模型&#xff08;LLM&#xff09;的全部潜力需要模型与我们人类的目标和偏好保持一致。从而出现了两种方法&#xff1a;来自人类反馈的人力强化学习&#xff08;RLHF&#xff09;和来自人工智能反馈的人工智能驱动的强化学习&#xff08;RLAIF&#xf…