STM32学习笔记一——初识STM32

news2024/12/26 10:55:33

目录

一、什么是ARM

二. Cortex 内核

三.什么是STM32

四.STM32核心板原理图:

五.STM32的内部结构:

六.stm32系统结构简化图

STM32基本原理分析:

七.典型型号——STM32F103ZET6 

stm32——32位单片机(数据总线是32位的)

一、什么是ARM

ARM这个缩写包含两个意思: 一是指ARM公司,二是指ARM公司设计的低功耗CPU及其架构,包括ARM1~ARM11与Cortex, 其中,被广泛应用的是ARM7、 ARM9、ARM11以及Cortex系列。

 ARM公司及其ARM架构:

ARM是全球领先的32位嵌入式RISC芯片内核设计公司。RISC的英文全称是ReducedInstruction Set Computer, 对应的中文是精简指令集计算机

特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。

ARM公司本身并不生产和销售芯片,它以出售ARM内核的知识产权为主要模式。全球顶尖的半导体公司,例如Actel、TI、 ST、Fujitsu、 NXP等均通过购买ARM的内核,结合各自的技术优势进行生产和销售,共同推动基于ARM内核包括Corter内核的嵌入式单片机的发展。ARM的设计具有典型的精简指令系统(RISCO) 风格。ARM的体系架构已经历了个版本,版本号分别是VI~V6。

二. Cortex 内核

Cortex是ARM的全新一代处理器内核,它在本质上是ARM V7架构的实现,它完全有别于ARM的其他内核,是全新开发的。按照3类典型的嵌入式系统应用,即高性能、微控制器、实时类,它又分成3个系列,即Cortex-A、Cortex-M、 Cortex-R。而STM32就属于Cortex-M系列。

Cortex-M旨在提供一种高性能、低成本的微处理器平台,以满足最小存储器、小引脚数和低功耗的需求,同时兼顾卓越的计算性能和出色的中断管理能力。目前典型的、使用最为广泛的是Cortex-M0、Cortex-M3、 Cortex-M4。

与MCS-51单片机采用的冯●诺依曼结构不同,Cortex-M (即stm32)采用的是哈佛结构,即程序存储器和数据存储器不分开、统一编址。

程序存储器:程序储存器的缩写是PC(Program Counter),它是一种专门用于指向当前正在执行的指令位置的寄存器,通常在CPU的结构中使用。程序储存器的作用是帮助计算机实现分步执行指令的功能,可以控制程序的运行顺序、管理数据传输和存储等。

数据存储器:RAM

三.什么是STM32

STM32是意法半导体(STMicroelectronics) 较早推向市场的基于Cortex-M 内核的微处理器系列产品,该系列产品具有成本低、功耗优、性能高、功能多等优势。
STM32目前常用的有STM32F103~107系列,简称“1系列”,最近又推出了高端系列STM32F4xx系列,简称“4系列”。前者基于Cortex-M3内核,后者基于Cortex-M4内核。

STM32F4xx系列在以下诸多方面做了优化:
(1)增加了浮点运算:
(2) DSP处理;
(3)存储空间更大,高达1M字节以上;
(4)运算速度更高,以168MHz高速运行时可达到210DMIPS的处理能力:
(5)更高级的外设,新增外设,例如,照相机接口、加密处理器、USB高速OTG接口等,提高性能,更快的通信接口,更高的采样率,带FIFO的DMA控制器。

四.STM32核心板原理图:

五.STM32的内部结构:

六.stm32系统结构简化图

STM32基本原理分析:

(1)程序存储器、静态数据存储器、所有的外设都统一编址,地址空间为4GB
(2)可将Cortex-M3内核视为STM32的“CPU",程序存储器、静态数据存储器、所有的外设均通过相应的总线再经总线矩阵与之相接。Cortex-M3内核控制程序存储器、静态数据存储器、所有外设的读写访问。
(3)STM32的功能外设较多,分为高速外设、低速外设两类,各自通过桥接再通过AHB系统总线连接至总线矩阵,从而实现与Cortex-M3 内核的接口。两类外设的时钟可各自配置,速度不一样。具体某个外设属于高速还是低速,已经被ST明确规定。所有外设均有两种访问操作方式:一是传统的方式, 通过相应总线由CPU发出读写指令进行访问,这种方式适用于读写数据较小、速度相对较低的场合;二是DMA方式,即直接存储器存取,在这种方式下,外设可发出DMA请求,不再通过CPU而直接与指定的存储区发生数据交换,因此可大大提高数据访问操作的速度。
(4)STM32的系统时钟均由复位与时钟控制器RCC产生,它有一整套的时钟管理设备,由它为系统和各种外设提供所需的时钟以确定各自的工作速度。

七.典型型号——STM32F103ZET6 

根据程序存储容量,ST芯片分为三大类,LD(小于64KB)、 MD(小于256KB)、HD(大于256KB)

STM32F103ZET6类型属于第三类,它是STM32系列中的一个典型型号。

以下是它的性能简介:
(1)基于ARM Cortex-M3核心的32位微控制器,LQFP-144封装

(2)512KB片内Flash(相当于硬盘,程序存储器),64KB片内RAM(相当于内存,数据存储器),片内Flash支持在线编程 (IAP)。

(3)高达72MHz的系统频率,数据、指令分别走不同的流水线,以确保CPU运行速度达到最大化。

(4)通过片内BOOT区,可实现串口的在线程序烧写(ISP)。

(5)片内双RC晶振,提供8MHz和40kHz的频率。

(6)支持片外高速晶振(8MHz)和片外低速晶振(32kHz)。其中片外低速晶振可用于CPU的实时时钟,带后备电源引脚,用于掉电后的时钟行走。

(7)42个16位的后备寄存器(可以理解为电池保存的RAM),利用外置的纽扣电池,实现掉电数据保存功能。

(8)支持JTAG、SWD调试。可在廉价的J-LINK的配合下,实现高速、低成本的开发调试方案。

(9)多达80个GPIO(大部分兼容5V逻辑);4个通用定时器,2个高级定时器, 2个基本定时器; 3路SPI接口;2路IIS接口; 2路IIC接口; 5路USART;1个USB从设备接口; 1个CAN接口; 1个SDIO接口; 可兼容SRAM、NOR和NAND Flash接口的16位总线的可变静态存储控制器(FSMC)

(10)3个共16通道的12位ADC,2个共2通道的12位ADC,支持片外独立电压基准。ADC转换速率最高可达1us

(11)CPU的工作电压范围:2.0~3.6V

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

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

相关文章

idea连接docker

idea 插件无法连接docker问题 原文:idea 插件无法连接docker问题 // 修改docker配置 vi /usr/lib/systemd/system/docker.service // 加上该段配置允许任何ip访问 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock // 重启docker即可 systemctl restart dock…

计算机网络·网络层

网络层 网络层提供的两种服务 争论: 网络层应该向运输层提供怎样的服务?面向连接还是无连接? 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 2 种观点: 面向连接的可靠交付。 无连…

PaddleNLP的简单使用

1 介绍 PaddleNLP是一个基于PaddlePaddle深度学习平台的自然语言处理(NLP)工具库。 它提供了一系列用于文本处理、文本分类、情感分析、文本生成等任务的预训练模型、模型组件和工具函数。 PaddleNLP有统一的应用范式:通过 paddlenlp.Task…

Windows Server 2003 Web服务器搭建

系列文章目录 目录 系列文章目录 前言 一、Web服务器是什么? 二、配置服务器 1.实验环境搭建 2.服务器搭建 1)控制面板中找到增加或删除程序打开 2)点击增加程序 3)安装Web服务器 4)查看安装是否成功 5)打开Internet信息服务(IIS)管理器,进行配置 6)找…

Deepin基本环境查看(七)【任务管理器和进程管理】

Deepin基本环境查看 - 目录Deepin基本环境查看(一)【基本信息】Deepin基本环境查看(二)【内存】Deepin基本环境查看(三)【网络信息】Deepin基本环境查看(四)【硬盘/分区、文件系统、…

Sqli-labs-master第一关通关攻略

第一关基于错误的字符串/数字型注入 第一关打开,请输入id数值作为参数,那就输呗整个1,2,3看看效果 通过ID数值得变动,页面也随之发生变化,然后就是判断SQL语句是否拼接,是字符型还是数字型 输入…

C++ —— 智能指针

C —— 智能指针 文章目录 C —— 智能指针一、为什么需要使用智能指针?二、内存泄漏什么是内存泄漏?内存泄漏的危害?内存泄漏分类 三、智能指针的使用及原理1. RAII2. 智能指针的原理 三、智能指针的缺陷及其发展3.1 std::auto_ptr3.2 std::…

Spring IoC容器(一)

IoC,Inversion of Control 控制反转,是一个过程。仅通过构造函数、工厂方法或在对象实例化后在对象实例上设置属性来定义其依赖关系。容器负责这些工作,这个过程从本质上来说是bean本身的反向,因此称为反向控制。 1 容器 负责实例化、配置及…

Linux系列之查看cpu、内存、磁盘使用情况

查看磁盘空间 df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。使用df -h命令,加个-h参数是为了显示GB MB KB单位,这样更容易查看 Filesystem …

2024年软考高项备考攻略

一、了解考试大纲和要求 在开始备考之前,首先要对考试大纲和要求进行全面了解。这有助于明确考试内容和学习方向,制定学习计划。 二、制定学习计划 在制定计划时,可以根据自己的实际情况和学习习惯,选择适合自己的学习方式。以…

LocalContainerEntityManagerFactoryBean源码

是 Spring Data JPA 中的一个类,它用于创建 EntityManagerFactory 的实例,获取EntityManager实例 public class LocalContainerEntityManagerFactoryBean extends AbstractEntityManagerFactoryBeanimplements ResourceLoaderAware, LoadTimeWeaverAwar…

Netty源码二:服务端创建NioEventLoopGroup

示例 还是拿之前启动源码的示例,来分析NioEventLoopGroup源码 NioEventLoopGroup构造函数 这里能看到会调到父类的MultiThread EventLoopGroup的构造方法 MultiThreadEventLoopGroup 这里我们能看到,如果传入的线程数目为0,那么就会设置2倍…

RabbitMQ-如何保证消息不丢失

RabbitMQ常用于 异步发送,mysql,redis,es之间的数据同步 ,分布式事务,削峰填谷等..... 在微服务中,rabbitmq是我们经常用到的消息中间件。它能够异步的在各个业务之中进行消息的接受和发送,那么…

代码随想录算法刷题训练营day19

代码随想录算法刷题训练营day19:LeetCode(404)左叶子之和、LeetCode(112)路径总和、LeetCode(113)路径总和 II、LeetCode(105)从前序与中序遍历序列构造二叉树、LeetCode(106)从中序与后序遍历序列构造二叉树 LeetCode(404)左叶子之和 题目 代码 /*** Definitio…

GitHub 上传文件夹到远程仓库、再次上传修改文件、如何使用lfs上传大文件、github报错一些问题

按照大家的做法,把自己遇到的问题及解决方案写出来(注意:Error里面有些方法有时候我用可以成功,有时候我用也不能成功,写出来仅供参考,实在不行重头再clone,add,commit,p…

Virtual Assistant for Smartphone;Denoising Autoencoder;CrossMAE

本文首发于公众号:机器感知 Virtual Assistant for Smartphone;Denoising Autoencoder;CrossMAE The Case for Co-Designing Model Architectures with Hardware While GPUs are responsible for training the vast majority of state-of-t…

dvwa,xss反射型lowmedium

xss&#xff0c;反射型&#xff0c;low&&medium low发现xss本地搭建实操 medium作为初学者的我第一次接触比较浅的绕过思路 low 发现xss 本关无过滤 <script>alert(/xss/)</script> //或 <script>confirm(/xss/)</script> //或 <script&…

vulnhub靶场之EMPIRE:BREAKOUT

一.环境搭建 1.靶场描述 Description Back to the Top Difficulty: Easy This box was created to be an Easy box, but it can be Medium if you get lost. For hints discord Server ( https://discord.gg/7asvAhCEhe ) 2.靶场地址 https://www.vulnhub.com/entry/empire-…

Canny边缘检测算法(python 实现)

1. 应用高斯滤波来平滑(模糊)图像&#xff0c;目的是去除噪声 2. 计算梯度强度和方向&#xff0c;寻找边缘&#xff0c;即灰度强度变化最强的位置 3应用非最大抑制技术NMS来消除边误检模糊&#xff08;blurred&#xff09;的边界变得清晰&#xff08;sharp&#xff09;。保留了…

力扣题目训练(3)

2024年1月27日力扣题目训练 2024年1月27日力扣题目训练290. 单词规律292. Nim 游戏303. 区域和检索 - 数组不可变91. 解码方法92. 反转链表 II41. 缺失的第一个正数 2024年1月27日力扣题目训练 2024年1月27日第三天编程训练&#xff0c;今天主要是进行一些题训练&#xff0c;包…