STM32学习笔记一——初识STM32

目录

一、什么是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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文献速递:人工智能医学影像分割--- 深度学习分割骨盆骨骼:大规模CT数据集和基线模型

文献速递:人工智能医学影像分割— 深度学习分割骨盆骨骼:大规模CT数据集和基线模型 我们为大家带来人工智能技术在医学影像分割上的应用文献。 人工智能在医学影像分析中发挥着至关重要的作用,尤其体现在图像分割技术上。这项技术的目的是准…

Flask 入门

1. 关于 Flask Flask诞生于2010年, Armin Ronacher的一个愚人节玩笑。不过现在已经是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。 Flask本身相当于一个内核,其他几乎所…

前端大屏展示可视化——地图的绘制(持续更新)

一、ECharts 1、安装 npm install echarts2、引入 import * as echarts from echarts;3、渲染 3.1、前期准备,基础配置 // 地图实例 const myChart ref(null); // 地图配置 const option reactive({tooltip: {trigger: item,formatter: function (params) {re…

WebSocket 整合 记录用法

WebSocket 介绍 WebSocket 是基于tcp的一种新的网络协议,可以让浏览器 和 服务器进行通信,然后区别于http需要三次握手,websocket只用一次握手,就可以创建持久性的连接,并进行双向数据传输 Http和WebSocket的区别 Http是短连接,WebSocket’是长连接Http通信是单向的,基于请求…

第十一篇【传奇开心果系列】BeeWare的Toga开发移动应用示例:Briefcase和Toga 哥俩好

传奇开心果博文系列 系列博文目录BeeWare的Toga开发移动应用示例系列博文目录一、前言二、Briefcase和toga各自的主要功能分别介绍三、使用Toga 开发移动应用Briefcase工具是最佳拍档四、Briefcase搭档Toga创建打包发布联系人移动应用示例代码五、运行测试打包发布六、归纳总结…

OCP NVME SSD规范解读-8.SMART日志要求-1

4.8.5章节SMART / Health Information Requirements详细规定了NVMe固态硬盘对SMART(Self-Monitoring, Analysis and Reporting Technology)和健康信息日志页面的支持要求,以确保设备能够准确报告其运行状态和预测潜在故障。 SLOG-1&#xff1…

使用Docker安装Jenkins,并能够在该Jenkins中使用Docker

1. 构建Dockerfile 试错1 参考https://medium.com/manav503/how-to-build-docker-images-inside-a-jenkins-container-d59944102f30 按照文章里所介绍的,实现在Jenkins容器环境中依然能够调用Docker,需要做到以下几步 下载Jenkins镜像将环境中的docke…

设计模式——2_0 职责链(Chain of Responsibility)

楼下一个男人并得要死,那家隔壁的一家唱着留声机,对面是弄孩子。楼上有两人狂笑;还有打牌声,河中的船上有女人哭她死去的母亲。人类的悲欢并不相通,我只觉得他们吵闹 ——鲁迅 定义 使多个对象都有机会处理请求&#…

Go语言中HTTP代理的请求和响应过程

在Go语言中,HTTP代理的实现涉及对请求和响应的拦截、转发和处理。下面将详细介绍这个过程。 请求过程: 客户端发起请求:客户端(例如浏览器或其他应用程序)发送HTTP请求到代理服务器。建立连接:代理服务器…

fgets函数和fputs函数的使用

----由于本人使用的是大白话来讲解fgets和fputs函数的使用,所以可能有些部分可能会有些不准确(见谅),如果想十分严谨的了解fgets和fputs函数,可以移步其他文章。 -----那么不废话,直接开始 1.fgets函数 &a…

专栏:数据库、中间件的监控一网打尽

前言 对于数据库、中间件的监控,目前社区里最为完善的就是 Prometheus 生态的各个 Exporter,不过这些 Exporter 比较分散,不好管理,如果有很多目标实例需要监控,就要部署很多个 Exporter,要是能有一个大一…

Linux系统Shell脚本-----------正则表达式 、grep、 sed

一、正则表达式 1.前言 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。在Linux中也就是代表我们定义的模式模板&…

SAI实例研究(3)

实例3 creature.id 16295(smart_script.entryorguid)的SAI设置: 共分为0和1两个事件阶段 第0阶段: 第1条(id 0) 当 creature 刷新时(event_type 11),creature 对自身&#xff0…

【网络】传输层TCP协议 | 三次握手 | 四次挥手

目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手? 3.3 为何两次握手不可以呢? 3.4 TCP的…

ChatGPT4 比 ChatGPT3.5 强在了那里?

刚开始的时候我还在纠结,一个月20 刀的ChatGPT4 ,到底值不值这个价钱?使用过后发现,诶嘛真香。因为 GPT4 比 GPT3.5 多了太多功能,特别是识图能力,用好的话效率翻倍。 1. 看图写代码 ChatGPT4 相比 ChatG…

colab使用自己数据集进行模型训练的方法汇总

在 Google Colab 上使用自己的数据集进行模型训练。Colab 允许通过多种方式上传数据,包括直接从本地计算机上传、从 Google Drive 加载或通过网络链接下载,从github导入等。 GitHub导入 使用以下的代码将github上的文件克隆到colab的当前目录下 !git …

除了Adobe之外,还有什么方法可以将Excel转为PDF?

前言 Java是一种广泛使用的编程语言,它在企业级应用开发中发挥着重要作用。而在实际的开发过程中,我们常常需要处理各种数据格式转换的需求。今天小编为大家介绍下如何使用葡萄城公司的的Java API 组件GrapeCity Documents for Excel(以下简…

vue3使用AntV G6 (图可视化引擎)历程[三]

上期回顾:历程[二]描述了节点抽离自定义节点并做数据静态渲染。下面这篇继续描述节点升级版的模块化抽离以及动态数据渲染 官网地址:https://g6-next.antv.antgroup.com/manual/introduction “antv/g6”: “^4.8.24” 一、 案例效果 二、自定义节点的模…

第九节HarmonyOS 常用基础组件14-DataPanel

1、描述 数据面板组件,用于将多个数据占比情况使用占比图进行展示。 2、接口 DataPanel(options:{values: number[], max?: numner, type?: DataPanelType}) 3、参数 参数名 参数类型 必填 描述 values number[] 是 数据值列表,最多含9条数…

SpringCloud微服务常见问题

1 微服务 返回面试宝典 问题1 SpringCloud常见组件有哪些? SpringCloud包含的组件很多,有很多功能是重复的,其中最常见的组件包括: 注册中心组件:Eureka、Nacos等;负载均衡组件:Ribbon&…