STM32系统参数和结构

系列文章目录

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://xiahunao.cn/news/2979481.html

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

相关文章

【Linux开发 第十四篇】日志管理

日志管理 日志常常放在/var/log目录中 常用的日志: 比如lasllog文件:可以通过命令lastlog来查看 Centos7.6 日志服务是rsyslogd ps aux | grep "rsyslog" | grep -v "grep":查询服务是否存在,-v的含义是反…

数字化医保买药平台开发教学:搭建智能医保购药APP

今天,小编将为大家介绍如何搭建智能医保购药APP,以便更好地服务患者和医疗机构。 一、需求分析 在进行APP开发之前,首先需要进行需求分析,明确开发的目标和功能。智能医保购药APP的主要功能包括: 用户注册与登录&…

【鸿蒙NEXT】web组件debug模式

官方文档 使用Devtools工具调试前端页面 打开web debug模式 webview.WebviewController.setWebDebuggingAccess(true)chrome 访问 chrome://inspect/#devices Discover network targets 中添加 localhost:9222 创建cat.sh com.coooliang.yourappbundname 为你应用的bundlen…

android系统更新ActivityManager中APi问题解决

遇到在alps/frameworks/base/core/java/android/app/ActivityManager.java 进行了新接口的增加时,需要进行更新api操作以刷新以下两文件。 alps/frameworks/base/core/api/system-current.txt alps/frameworks/base/core/api/system-lint-baseline.txt 否则会报错…

jsp实验10 JavaBean

二、实验项目内容(实验题目) 编写代码,掌握javabean的用法。【参考课本 上机实验 5.5.1 】 三、源代码以及执行结果截图: 源代码: Fraction.java package sea.water; public class Fraction { public double numbe…

WAF防范原理

目录 一、什么是WAF 二、纵深安全防御 WAF的组网模式 WAF配置全景 WAF端 服务器 攻击端 拦截SQL注入,XSS攻击,木马文件上传 要求: 使用WAF,通过配置策略要求能防御常见的web漏洞攻击(要求至少能够防御SQL、XSS、文…

使用R语言生成频数分布表

概要 使用R语言生成频数分布表 在R语言中,可以使用freq()函数来生成频数分布表。首先,将需要分组的数据存储在一个向量中。然后,使用freq()函数将这个向量作为参数输入,即可生成频数分布表。以下是一个示例: 示例 …

ClickHouse 高可用之副本

文章目录 ClickHouse 副本支持副本的引擎配置高可用副本副本应用1.副本表概述2.创建副本表3.写入模拟数据4.副本验证 扩展 —— 在 Zookeeper 中查看副本表信息 ClickHouse 副本 ClickHouse 通过副本机制,可以将数据拷贝存储在不同的节点上。这样,如果一…

【前端】vue的基础知识及开发指引

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Vue是什么二、学习 Vue.js 的基础知识三、熟悉 Vue.js 的生态系统四、掌握常用工具和库五、实践和项目开发六、 持续学习和跟进 前言 随着开发语言及人工智…

【Java--数据结构】模拟实现ArrayList

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 LIst 顺序表ArrayList 顺序表优点 IList接口 ArrayList中定义要操作的数组 在MyArrayList中 重写接口方法 新增元素 在指定位置插入元素 pos不合法异常 判断和查找元素…

【Web】DASCTF X GFCTF 2024|四月开启第一局 题解(全)

目录 EasySignin cool_index SuiteCRM web1234 法一、条件竞争(没成功) 法二、session反序列化 EasySignin 先随便注册个账号登录,然后拿bp抓包改密码(username改成admin) 然后admin / 1234567登录 康好康的图片功能可以打SSRF,不能直接读本地文…

算法06链表

算法06链表 一、链表概述1.1概述1.2链表的组成部分:1.3链表的优缺点: 二、链表典例力扣707.设计链表难点分析:(1)MyLinkedList成员变量的确定:(2)初始化自定义链表:&…

从0到1带你玩转pandas

学习 pandas 的过程可以分为几个阶段,每个阶段都围绕着不同的核心技能和概念。下面是一个为初学者设计的学习大纲: 一. 基础介绍 学习如何安装和设置 pandas 以及了解它的基本概念是开始使用 pandas 进行数据分析的第一步。下面我将详细介绍这些步骤&am…

二分查找知识点及练习题

知识点讲解 一、没有相同元素查找 请在一个有序递增数组中(不存在相同元素),采用二分查找,找出值x的位置,如果x在数组中不存在,请输出-1! 输入格式 第一行,一个整数n,代…

Winfrom —— listView控件详解

listView简介: ListView 通过view属性设置listView五种风格 1 Largelcon 每一个项为最大化的图标,在图标下面有一行文字。 2 SmallIcon 每一项项为最小化的图标,在图标右面有一行文字。 3 Details 每个项显示在不同的行上…

书生·浦语大模型实战营之 火爆 Reddit!多模态 Llama-3 它来了 !! XTuner 微调 Llama3 图片理解多模态

书生浦语大模型实战营之 火爆 Reddit!多模态 Llama-3 它来了 !! XTuner 微调 Llama3 图片理解多模态 LLaVA-Llama-3-8B 已由 XTuner 团队推出,相比于 LLaVA-1.5,能力全面提升! XTuner:https://github.com/InternLM/XTuner (欢迎 Star) 微调教程:https://github.com/Sm…

亚马逊多账号多店铺如何防关联?

随着亚马逊识别技术的提升,以及政策的加强,不少跨境电商的卖家都面临着多账号多店铺被关联的风险,这个时候,卖家就需要做好相关的防关联措施了,下面这些方法很有效,可以去参考! 亚马逊多账号多…

python自动生成SQL语句自动化

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python自动生成SQL语句自动化 在数据处理和管理中,SQL(Structured …

代码随想录算法训练营DAY28|C++回溯算法Part.4|93.复原IP地址、78.子集、90.子集II

文章目录 93.复原IP地址思路确定非法的范围树形结构 伪代码 78.子集思路伪代码实现CPP代码 90.子集II思路CPP代码用used去重的办法用set去重的版本不使用used数组、set的版本 93.复原IP地址 力扣题目链接 文章讲解:93.复原IP地址 视频讲解:回溯算法如何分…

Scala 05 —— 函数式编程底层逻辑

Scala 05 —— 函数式编程底层逻辑 该文章来自2023/1/14的清华大学交叉信息学院助理教授——袁洋演讲。 文章目录 Scala 05 —— 函数式编程底层逻辑函数式编程假如...副作用是必须的?函数的定义函数是数据的函数,不是数字的函数如何把业务逻辑做成纯函…