STM32F103学习笔记 | 4.STM32F103芯片介绍

news2024/12/25 0:14:54

STM32F1入门学习将使用STM32F103C8T6开发板最小系统板。小R为什么选择它来入门呢?咳咳~首先,ST官方提供强大且易用的标准库函数,使得开发过程方便快捷;其次,网上的教程资料多也十分详细。所以呢,它对高校学生和广大初学者入门都是一个非常好的选择。

文章目录

    • 一、 开发板简介
    • 二、 STM32简介
    • 三、 STM32F103引脚图
    • 四、 STM32F103简述
    • 参考文献


一、 开发板简介

开发板的实物图如下:

在这里插入图片描述

开发板的主要参数如下:

型号:STM32F103C8T6

封装类型:LQFP

引脚个数:48

内核:Cortex - M3

工作频率:72MHz

存储资源:64K Byte Flash, 20K Byte SRAM

接口资源:2*SPI, 3*USART, 2*IIC, 1*CAN, 37*I/O

数模转换:2*ADC(12位/16通道)

调试下载:支持JTAG/SWD接口调试下载,支持IAP

二、 STM32简介

2.1 Cortex内核(ARM内核)

ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为不同的市场提供服务,全世界超过95%的智能手机和平板电脑都采用ARM架构。

Cortex系列属于ARMv7架构,它是2010年ARM公司最新的指令集架构。ARMv7架构定义了三大分工明确的系列:

“A”系列:面向尖端高性能的基于虚拟内存的操作系统和用户应用;

“R”系列:面向实时操作系统;

“M”系列:面向微控制器。

2.2 ST意法半导体

本系列学习所使用的开发板板载主控芯片为STM32F103C8T6,它是意法半导体在MCU领域推出的非常经典的芯片系列,因其强大的功能和丰富的内部资源,以及众多的使用者和学习资料。初学者一般都是将其作为入门的芯片(小R也是),它在嵌入式领域应用极广。

ST的MCU系列种类繁多,光是芯片选型手册就有几十页。他们公司有一套命名规则,用来帮助使用者合理高效地进行芯片的选择。以下是ST公司的芯片产品命名规则截图:

在这里插入图片描述

三、 STM32F103引脚图

四、 STM32F103简述

4.1 ARM®的Cortex™-M3核心并内嵌闪存和SRAM

ARM的Cortex™-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。

ARM的Cortex™-M3是32位的RISC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上发挥了ARM内核的高性能。

4.2 内置闪存存储器

64K或128K字节的内置闪存存储器,用于存放程序和数据。小R使用的开发板内置闪存存储器为64K。

4.3 CRC(循环冗余校验)计算单元

CRC(循环冗余校验)计算单元使用一个固定的多项式发生器,从一个32位的数据字产生一个CRC码。在众多的应用中,基于CRC的技术被用于验证数据传输或存储的一致性。

4.4 内置SRAM

20K字节的内置SRAM,CPU能以0等待周期访问(读/写)。

4.5 嵌套的向量式中断控制器(NVIC)

STM32F103xx增强型产品内置嵌套的向量式中断控制器,能够处理多达43个可屏蔽中断通道(不包括16个Cortex™-M3的中断线)和16个优先级。

● 紧耦合的NVIC能够达到低延迟的中断响应处理

● 中断向量入口地址直接进入内核

● 紧耦合的NVIC接口

● 允许中断的早期处理

● 处理晚到的较高优先级中断

● 支持中断尾部链接功能

● 自动保存处理器状态

● 中断返回时自动恢复,无需额外指令开销

该模块以最小的中断延迟提供灵活的中断管理功能。

4.6 外部中断/事件控制器(EXTI)

外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求。每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿),并能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。

EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。多达80个通用I/O口连接到16个外部中断线。

4.7 时钟和启动

系统时钟的选择是在启动时进行,复位时内部8MHz的RC振荡器被选为默认的CPU时钟,随后可以选择外部的、具失效监控的4~16MHz时钟;当检测到外部时钟失效时,它将被隔离,系统将自动地切换到内部的RC振荡器,如果使能了中断,软件可以接收到相应的中断。同样,在需要时可以采取对PLL时钟完全的中断管理(如当一个间接使用的外部振荡器失效时)。

多个预分频器用于配置AHB的频率、高速APB(APB2)和低APB(APB1)区域。AHB和高速APB的最高频率是72MHz,低速APB的最高频率为36MHz。

4.8 自举模式

在启动时,通过自举引脚可以选择三种自举模式中的一种:

● 从程序闪存存储器自举

● 从系统存储器自举

● 从内部SRAM自举

自举加载程序(Bootloader)存放于系统存储器中,可以通过USART1对闪存重新编程。

4.9 供电方案

● VDD = 2.0~3.6V:VDD引脚为I/O引脚和内部调压器供电。

● VSSA,VDDA = 2.0~3.6V:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。使用ADC时,VDDA不得小于2.4V。VDDA和VSSA必须分别连接到VDD和VSS。

● VBAT = 1.8~3.6V:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。

4.10 供电监控器

本产品内部集成了上电复位(POR)/掉电复位(PDR)电路,该电路始终处于工作状态,保证系统在供电超过2V时工作;当VDD低于设定的阀值(VPOR/PDR)时,置器件于复位状态,而不必使用外部复位电路。

器件中还有一个可编程电压监测器(PVD),它监视VDD/VDDA供电并与阀值VPVD比较,当VDD低于或高于阀值VPVD时产生中断,中断处理程序可以发出警告信息或将微控制器转入安全模式。PVD功能需要通过程序开启。

4.11 电压调压器

调压器有三个操作模式:主模式(MR)、低功耗模式(LPR)和关断模式

● 主模式(MR)用于正常的运行操作

● 低功耗模式(LPR)用于CPU的停机模式

● 关断模式用于CPU的待机模式:调压器的输出为高阻状态。

4.12 低功耗模式

STM32F103xC、STM32F103xD和STM32F103xE增强型产品支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。

4.13 DMA

灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。

每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。

DMA可以用于主要的外设:SPI、I2C、USART,通用、基本和高级控制定时器TIMx和ADC。

4.14 RTC(实时时钟)和后备寄存器

4.15 定时器和看门狗

中等容量的STM32F103xx增强型系列产品包含1个高级控制定时器、3个普通定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。

高级控制定时器(TIM1)可以被看成是分配到6个通道的三相PWM发生器,它具有带死区插入的互补PWM输出,还可以被当成完整的通用定时器。四个独立的通道可以用于:

● 输入捕获

● 输出比较

● 产生PWM(边缘或中心对齐模式)

● 单脉冲输出

配置为16位标准定时器时,它与TIMx定时器具有相同的功能。配置为16位PWM发生器时,它具有全调制能力(0~100%)。

通用定时器(TIMx)

STM32F103xx增强型产品中,内置了多达3个可同步运行的标准定时器(TIM2、TIM3和TIM4)。每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。

它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。在调试模式下,计数器可以被冻结。任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制。

这些定时器还能够处理增量编码器的信号,也能处理1至3个霍尔传感器的数字输出。

4.16 IIC总线

多达2个I2C总线接口,能够工作于多主模式或从模式,支持标准和快速模式。I2C接口支持7位或10位寻址,7位从模式时支持双从地址寻址。内置了硬件CRC发生器/校验器。它们可以使用DMA操作并支持SMBus总线2.0版/PMBus总线。

4.17 通用同步/异步收发器(USART)

USART1接口通信速率可达4.5兆位/秒,其他接口的通信速率可达2.25兆位/秒。USART接口具有硬件的CTS和RTS信号管理、支持IrDA SIR ENDEC传输编解码、兼容ISO7816的智能卡并提供LIN主/从功能。

所有USART接口都可以使用DMA操作。

4.18 串行外设接口(SPI)

多达2个SPI接口,在从或主模式下,全双工和半双工的通信速率可达18兆位/秒。3位的预分频器可产生8种主模式频率,可配置成每帧8位或16位。硬件的CRC产生/校验支持基本的SD卡和MMC模式。所有的SPI接口都可以使用DMA操作。

4.19 控制器区域网络(CAN)

CAN接口兼容规范2.0A和2.0B(主动),位速率高达1兆位/秒。它可以接收和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧。具有3个发送邮箱和2个接收FIFO,3级14个可调节的滤波器。

4.20 通用串行总线(USB)

STM32F103xx增强型系列产品,内嵌一个兼容全速USB的设备控制器,遵循全速USB设备(12兆位/秒)标准,端点可由软件配置,具有待机/唤醒功能。USB专用的48MHz时钟由内部主PLL直接产生(时钟源必须是一个HSE晶体振荡器)。

4.21 通用输入输出接口(GPIO)

每个GPIO引脚都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设共用。

除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。

在APB2上的I/O脚可达18MHz的翻转速度。

4.22 ADC(模拟/数字转换器)

STM32F103xx增强型产品内嵌2个12位的模拟/数字转换器(ADC),每个ADC共用多达16个外部通道,可以实现单次或扫描转换。在扫描模式下,自动进行在选定的一组模拟输入上的转换。

ADC接口上的其它逻辑功能包括:

● 同步的采样和保持

● 交叉的采样和保持

● 单次采样

ADC可以使用DMA操作。

模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断。由标准定时器(TIMx)和高级控制定时器(TIM1)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。

4.23 温度传感器

温度传感器产生一个随温度线性变化的电压,转换范围在2V < VDDA < 3.6V之间。温度传感器在内部被连接到ADC12_IN16的输入通道上,用于将传感器的输出转换到数字数值。

4.24 串行单线JTAG调试口(SWJ-DP)

内嵌ARM的SWJ-DP接口,这是一个结合了JTAG和串行单线调试的接口,可以实现串行单线调试接口或JTAG接口的连接。JTAG的TMS和TCK信号分别与SWDIO和SWCLK共用引脚,TMS脚上的一个特殊的信号序列用于在JTAG-DP和SW-DP间切换。

2.3 STM32F103xx增强型模块框图

在这里插入图片描述

在这里插入图片描述

2.4 STM32F103xx时钟树

在这里插入图片描述

参考文献

http://t.csdnimg.cn/vx7Dh

http://t.csdnimg.cn/iA9kx

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

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

相关文章

SQLite的扩展函数Carray()表值函数(三十八)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite如何处理CSV 虚拟表 下一篇&#xff1a;SQLite—系列文章目录 ​ 1. 概述 Carray()是一个具有单列的表值函数(名为 “value”)和零行或多行。 carray() 中每一行的“值”取自 C 语言数组 由应用程序通过参数绑定提…

【yolov8目标检测部署】TensorRT int8量化

原作者github&#xff1a;https://github.com/xuanandsix/Tensorrt-int8-quantization-pipline/tree/main 改进&#xff1a; 源代码支持的TensorRT版本为7.许多属性已经弃用&#xff1b; 在原有的代码上将支持的TensorRT版本从7改到8. &#xff01;&#xff01;不知道如何安装T…

工具链工具——映射与调度、模拟与验证、开发与测试工具

本篇文章将重点介绍工具链的工具相关知识&#xff0c;我们将从工具链的基本概念出发&#xff0c;重点介绍工具链中的映射和调度工具、模拟与验证工具、开发和测试工具&#xff0c;最后提出对工具链发展的展望&#xff0c;从而对工具链的工具进行一个较为系统的讲解。 工具链的…

万兴PDF专家 PDFelement Pro v10.3.8 破姐版!

&#x1f9d1;‍&#x1f4bb;万兴PDF专家 PDFelement Pro v10.3.8 破姐版 (https://docs.qq.com/sheet/DRVVxTHJ3RXJFVHVr)

WebSocket 全面解析

&#x1f31f; 引言 WebSocket&#xff0c;一个让实时通信变得轻而易举的神器&#xff0c;它打破了传统HTTP协议的限制&#xff0c;实现了浏览器与服务器间的全双工通信。想象一下&#xff0c;即时消息、在线游戏、实时股票报价…这一切都离不开WebSocket的魔力&#x1f4ab;。…

利用word2vec包将中文转变为词向量

代码展示&#xff1a; import jieba import re import json import logging import sys import gensim.models as word2vec from gensim.models.word2vec import LineSentence, loggerpattern u[\\s\\d,.<>/?:;\\"[\\]{}()\\|~!\t"#$%^&*\\-_a-zA-Z&…

网页使用之如何返回json/xml

后端返回json数据给前端进行渲染的方式比较熟悉&#xff0c;至于返回html页面&#xff0c;返回xml的方式接触逐渐减少&#xff0c;来在项目中熟悉这一点。 返回文本数据 json姿势的返回实属最简单的方式&#xff0c;在SpringBoot应用中&#xff0c;有两种简单的方式 1.直接在…

【docker 】Windows10安装 Docker

安装 Hyper-V Hyper-V 是微软开发的虚拟机&#xff0c;仅适用于 Windows 10。 按键&#xff1a; win键X &#xff0c;选着程序和功能 在查找设置中输入&#xff1a;启用或关闭Windows功能 选中Hyper-V 点击确定 安装 Docker Desktop for Windows Docker Desktop 官方下载…

LeetCode46:全排列

题目描述 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案 解题思想 使用used记录元素是否使用过&#xff0c;排列是有序的&#xff0c;要注意与组合的区别。 代码 class Solution { public:vector<vector<int>…

在线教程|零门槛部署 Llama 3,70B 版本只占 1.07G 存储空间,新用户免费体验 8B 版本

4 月 18 日&#xff0c;Meta 宣布开源 Llama 3&#xff0c;这个号称「迄今为止最好的开源大模型」一经发布&#xff0c;立刻引爆科技圈&#xff01; 发布当天恰逢斯坦福大学教授、AI 顶尖专家吴恩达的生日&#xff0c;作为 AI 开源倡导者&#xff0c;他激动地发文表示&#xff…

Llama 3 ——开源大模型Llama 3从概念到使用

概述 Meta公司自豪地宣布推出其最新的开源大型语言模型——Llama 3&#xff0c;这是一款专为未来AI挑战而设计的先进工具。Llama 3包含两个不同参数规模的版本&#xff0c;以满足多样化的计算需求&#xff1a; 8B版本&#xff1a;优化了在消费级GPU上的部署和开发流程&#xf…

二、VLAN原理和配置

vlan不是协议&#xff0c;是一个技术&#xff0c;虚拟局域网技术&#xff0c;基于802.1q协议。 vlan&#xff08;虚拟局域网&#xff09;&#xff0c;将一个物理的局域网在逻辑上划分成多个广播域的技术。 目录 1.冲突域和广播域 概念 范围 2.以太网帧格式 3.以太网帧封装…

自动驾驶中的深度学习和计算机视觉

书籍&#xff1a;Applied Deep Learning and Computer Vision for Self-Driving Cars: Build autonomous vehicles using deep neural networks and behavior-cloning techniques 作者&#xff1a;Sumit Ranjan&#xff0c;Dr. S. Senthamilarasu 出版&#xff1a;Packt 书籍…

使用LocalGPT+cpolar打造可远程访问的本地私有类chatgpt服务

文章目录 前言环境准备1. localGPT部署2. 启动和使用3. 安装cpolar 内网穿透4. 创建公网地址5. 公网地址访问6. 固定公网地址 前言 本文主要介绍如何本地部署LocalGPT并实现远程访问&#xff0c;由于localGPT只能通过本地局域网IP地址端口号的形式访问&#xff0c;实现远程访问…

电子式汽车机油压力传感器的接线方法及特点

电子式机油压力传感器由厚膜压力传感器芯片、信号处理电路、外壳、固定电路板装置和两根引线&#xff08;信号线和报警线&#xff09;组成。信号处理电路由电源电路、传感器补偿电路、调零电路、电压放大电路、电流放大电路、滤波电路和报警电路组成。 厚膜压力传感器是20世纪…

杰发科技AC7840——SPI通信简介(1)_跑通Demo

0. 简介 一些配置项&#xff1a; CPHA&#xff1a;相序 CPLO&#xff1a;极性 看着demo需要按键&#xff0c;于是去掉按键&#xff0c;去掉打印&#xff0c;直接输出波形看逻辑分析仪的信号。 其实现在做这些demo测试应该都有逻辑分析仪&#xff0c;直接看波形更直观一点。…

git误操作版本回退的方法

场景&#xff1a;在使用git进行代码提交的时候不小心执行了git reset 命令进行了版本回退但是在这之前进行了git add . git commit -m "提交"等命令&#xff0c;正常情况下就可以直接使用 git reset 版本号 进行代码的回退&#xff0c;但是发现自己不能找打上一个提…

搭建MongoDB副本集

文章目录 一、什么是MongoDB的副本集二、副本集的架构三、副本集的成员四、部署副本集1、节点划分2、安装MongoDB2.1、下载解压安装包 3、创建主节点3.1、创建存储数据和日志的目录3.2、新建配置文件3.3、启动节点服务 4、创建副本节点4.1、创建存储数据和日志的目录4.2、新建配…

场景文本检测识别学习 day06(Vi-Transformer论文精读)

Vi-Transformer论文精读 在NLP领域&#xff0c;基于注意力的Transformer模型使用的非常广泛&#xff0c;但是在计算机视觉领域&#xff0c;注意力更多是和CNN一起使用&#xff0c;或者是单纯将CNN的卷积替换成注意力&#xff0c;但是整体的CNN 架构没有发生改变VIT说明&#x…

面试笔记——线程池

线程池的核心参数&#xff08;原理&#xff09; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler)corePoolSize …