STM32(01单片机基础)
1.计算机基础
1.1 计算机的组成

输入设备、输出设备、存储器、运算器、控制器
- 输入设备:将其他信号转换为计算机可以识别的信号(电信号)。
- 输出设备:将电信号(0、1)转为人或其他设备能理解的信号。
- 运算器:CPU对信息处理和运算的部件,常进行算术运算和逻辑运算,CPU中用各种各样的数字电路搭配成各种各样的运算电路,如:加、减法等。
- 控制器:整个计算机的指挥中心。
- 存储器:存放程序和数据的部件,也是计算机能够实现“存储程序控制”的基础。
程序:指令的有序集合。
ROM(Read Only Memory):掉电不丢失,硬盘、Flash(EMMC)、磁盘空间掉电不丢失数据,程序存储器,非易失性存储器。
RAM(Random Access Memory):内存,掉电丢失数据,临时数据。
1.2 计算机的三级存储结构


Cache的作用
- 提高访问速度:缓存是一种小而高速的存储器,用于存储最近或频繁使用的数据。由于缓存的访问速度比主存(如RAM)快很多,它能显著减少CPU等待数据的时间,从而提高系统性能。
- 减少内存延迟:当处理器需要访问数据时,如果数据在缓存中,可以快速获取,而不需要花费较长时间去访问主存。这大大减少了内存延迟。
- 提高吞吐量:通过减少内存访问延迟和提高访问速度,缓存能够提高整体系统的吞吐量,使CPU能够更高效地执行更多指令。
1.3 IO逻辑
数据的传输在计算机系统中数据的存储、传输、运算都是以二进制的形式进行的。
数据的传输其实通过数据总线真正传递的是电信号,也就是高低电平。计算机系统中的高低电平逻辑1和0。

1.4 总线
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
地址总线
- CPU是通过地址总线来指定存储单元的。
- 地址总线决定了CPU所能访问的最大内存空间的大小。如:10根地址线能访问的最大的内存为1024位二进制数据(1024个内存单元)。
- 地址总线是地址线数量之和。
数据总线
- 是CPU与内存或其他器件之间的数据传送的通道。
- 数据总线的宽度决定了CPU和外界的数据传送速度。
- 每条传输线一次只能传输1位二进制数据。如:8根数据线一次可传送一个8位二进制数据(即一个字节)。
- 数据总线是数据线数量之和。
例子:想要寻找地址为0x03的存储单元,往这个存储单元里面写入0000 1111,计算机内部总线的流程应该是什么样的?
CPU通过地址总线向地址译码器写入0000 0011,然后地址译码器就知道CPU要寻找的地址为0x03,然后通过数据总线向0x03这个存储单元里面写入0000 1111即可。
控制总线
- CPU通过控制总线对外部器件进行控制。
- 控制总线的宽度决定了CPU对外部器件的控制能力。
- 控制总线是控制线数量之和。
总结:
- 地址总线的宽度决定了CPU的寻址能力。
- 数据总线的宽度决定了CPU一次传输数据的最大量。
- 控制总线的宽度决定了CPU对于外部器件的控制能力。
2.2 单片机常见的型号
51单片机(8位)
AT89C51 ATMEL STC89C51 宏晶科技STC

宏晶科技公司
https://baike.baidu.com/item/%E5%AE%8F%E6%99%B6%E7%A7%91%E6%8A%80?fromModule=lemma_search-box
32单片机(32位)
STM32 ST意法半导体 GD32 兆易创新GD

32位处理器——处理数据宽度是32位
处理器位数——CPU单次运算最大的处理数据位数
意法半导体
兆易创新
2.3 8位和32位的区别

8位和32位代表什么?CPU单次运算所能处理的最大的位数。



2.4 ALU
Arithmetic and Logic Unit 算数逻辑单元
ALU有两个单元,一个算术单元,一个逻辑单元
以算术单元为例
ALU内部使用了大量的晶体管,这些晶体管合理分布使其能够实现预期功能;相应的,预期功能越大,所使用的晶体管越多。操作可能有很多,比如说加减(乘法可以使用多次加法代替)

英特尔74181

1970年发布,是第一个封装在单个芯片内的完整ALU
3.开发板介绍
开发板通常是学习用途,功能较全,接口丰富,是用于研发、研究、学习的一块板子。
底板

STM32 开发板底板,支持5V电源适配器与TypeC供电。
提供RTC时钟电源,提供三轴加速度与角速度传感器,用于姿态感知。
板载ESP-12F无线模组,用于物联网云平台项目开发。
提供1路五项按键,采用中断与A/D模式采样。
提供1路有源蜂鸣器,1路2*17P扩展接口,用于资源拓展板的接入。
核心板接口通过2.54mm间距的插针引出,方便用户外接其它设备
显示屏

电容触摸屏在很多智能设备上得到应用,提升了设备的交互感。
在开发板套件中使用方型显示屏来模拟圆形的一个手表项目。显示屏尺寸为2.8寸,分辨率320*240(RGB)
驱动 IC 采用 ILI9341,自带172,800字节的GRAM存储。电容触摸屏采用 I2C 接口,驱动IC采用FT6336G。
资源拓展版

资源扩展版提供基于 I2C 总线的温湿度传感器、环境光感知、心率/脉搏测量。
基于模数转换接口的电压/电流采集。
基于 EXTI 事件/中断控制类型的人体红外、光电开关、火焰感知传感器。
基于 SPI 总线的数码管驱动电路。
基于 PWM 控制的风扇、蜂鸣器、震动马达。
基于 GPIO 的按键、LED 指示灯。
基于异步行通信的485总线电平转换。基于控制局域网总线的 CAN 电平转换等外设。
资源拓展板主要用于微型控制器入门外设的使用,硬件图纸原理以及项目案例的应用开发新学习。
核心板

最小系统板
集成了核心功能的应用功能,可以根据需求定制各种不同的底板,通用性较好。再者核心作为一块独立的模块被分离出来,也降低了开发难度,增加了系统的稳定性和可维护性通常用于做项目,也可以作为模块在产品里在直接使用。

4.STM32 基础
4.1 STM32简单介绍
STM32是意法半导体公司生成的一款32位的微控制器。STM32 的功能强大,性能优异,片上资源丰富,低功耗,是一款经典的微控制器。
4.2 命名规则
STM32 F051 C8T6 STM32G030C8T6 STM32U575RIT6



| ST | 意法半导体 |
| M | 微控制器(microcotroller) |
| 32 | 32位处理器 |
| 类型 | F 通用/基础型 foundation G 多用途型 general-purpose L 低功耗 low power H 高性能 High performance S 简单/标准型 Standard |
| 系列 | 0 精简系列 1/2/3 增强系列 4/7 高性能系列 |
| 子型号 | 00/01/02/03/05/07 |
| 引脚数量 | K/6-32脚 C/8-48脚 R-64脚 V-100脚 Z-144脚 A-168脚 I-176脚 B-208脚 N-216脚 |
| 存储量 | 6 : 32KB 8 : 64KB B :128KB C :256KB D : 384KB E : 512KB G : 1MB I : 2MB |
| 封装 | U - UQFN封装 T - TQFP封装 |
| 工作温度 | 6 - -40 ~ 85度 |
4.3 STM32优势
STM32 | 产品 | STM32 | MCU单片机 | 意法半导体STM | STMCU中文官网

- 产品型号丰富,可选择性强
- 运算速度快,功耗低
- 处理器的接口更加丰富
- HAL库开发体系完整,可参考学习资料众多
4.4 STM32的内部架构
STM32F0

STM32G0

STM32U575

单片机内部主要由以下几个模块组成
两个主模块:
- Contex-M33内核以及高性能总线(AHB bus)
- 通用DMA
三个从模块
- 内部的FLASH
- 内部的SRAM
- AHB和AHB连接到APB桥上面的外设
5.ARM
5.1 什么是ARM
1. ARM是一家公司,只做技术服务,既不生产芯片也不出售芯片。
从“英国苹果”到RISC芯片王者——ARM的前世今生之完整追溯 (baidu.com)
2. RAM处理器,ARM处理器是英国Acorn有限公司设计的低功耗低成本的第一款RISC的微处理器,经典处理器 ARM7\ARM9\ARM11,后续处理器(16年)开始以cortex命名。
Cortex-A: 高性能(电脑、平板、手机)
Cortex-A5:低功耗,适合入门级应用。
Cortex-A7:高能效,广泛应用于智能手机。
Cortex-A9:高性能,应用广泛。
Cortex-A15:高性能,用于更高端的设备。
Cortex-A53:64位处理器,注重功耗与性能平衡。
Cortex-A57:高性能64位处理器。
Cortex-A72:用于旗舰级设备。
Cortex-A75、Cortex-A76、Cortex-A77、Cortex-A78:不断提升的性能和能 效,适应高端智能手机和其他高性能计算需求。
Cortex-X1:最高性能的Cortex-A系列核心,针对旗舰设备优化
Cortex-R: 汽车电子 、火箭、导弹、坦克(实时性)(对设备的实时性要求高)
Cortex-R4:适用于高性能实时应用。
Cortex-R5:增强的实时性能。
Cortex-R7:更高的性能和确定性。
Cortex-R8:最新的实时处理器,提供更高的性能和安全性。
Cortex-M: 低成本、低功耗的解决法案
Cortex-M0:超低功耗,适合简单应用。
Cortex-M0+:进一步降低功耗并提高性能。
Cortex-M3:平衡性能和能效,用于多种嵌入式应用。
Cortex-M4:增加DSP功能,适用于信号处理应用。
Cortex-M7:最高性能的Cortex-M处理器,适用于复杂的嵌入式系统。
Cortex-M23:基于ARMv8-M架构,支持TrustZone安全特性。
Cortex-M33:更高的性能和安全性,适用于高级嵌入式应用。
cortex — X
它们主要针对高端智能手机、平板电脑、笔记本电脑和其他需要高计算能力和 能效的设备。这些芯片的设计目标是提供领先的单线程性能和整体系统性能。
Cortex-X1:
首款Cortex-X系列产品,于2020年发布。
相较于Cortex-A77,性能提升了约30%。
Cortex-X2:
2021年发布,基于ARMv9架构。
提供进一步的性能提升,并改进了机器学习和安全功能
3.ARM是一款指令集
5.2 ARM体系架构

5.3 指令集
指令集:指令的集合
指令:能够指示处理器运行的命令 + - * /
指令在程序中的作用
在程序中,指令的组合形成了一系列步骤,每个步骤执行特定的操作,从而完成整个程序的功能。通过有序地执行这些指令,处理器可以实现从简单的数学运算到复杂的逻辑控制、数据处理、设备管理等各种任务。
5.4 指令集的分类
RISC(Rdduce)精简指令集
精简指令集(RISC)-->微处理器
只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。
RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛
举例:如有加法运算器 ,没有乘法运算器 3*3 ---》3+3+3
优点:功耗低,价格便宜,体积小,指令简短,散热需求小
缺点:功能较差,运算速度慢。
ARM是精简指令
CISC(Complex)复杂指令集
复杂指令集(CISC)-->电脑CPU
不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定
CISC处理器在性能上有很大优势,多用于PC及服务器等领域
优点:运算速度快
缺点:功耗高,体积大,成本高,指令复杂,散热需求高。
- Contex-M33

微处理器主要包含了 处理器的内核,嵌套中断向量控制器,调试子系统,内部的总线系统构成,未处理器内核通过 AHB LITE 总线接口单元和外界的存储器以及外设1进行通信。
6.1 M33的特性
- Cortex-M33是ARM推出的中高端嵌入式处理器,面向物联网(IoT)、实时控制和。安全关键应用设计,平衡性能、能效与安全性。
- 应用场景:智能家居,工业自动化,医疗设备等。
- 采用ARMV8架构,32位AHB总线,支持多主设备并发访问。
6.2 M33的工作模式

线程模式:芯片进行复位之后,执行的用户程序
处理模式:当处理器发生了异常或者中断的时候执行处理模式。处理完中断和异常继续返回线程模式
- 如何进行单片机的开发

开发环境的搭建
STM32CubeMX

ST公司出品的专门用于STM32系列芯片的工程搭建工具
STM32CubeMX是一种图形工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。
作用及功能
- 工程项目搭建和配置
- 直观地选择微控制器
- 图形化引脚功能配置,引脚冲突提示
- 动态的配置时钟树
- 动态设置参数和初始化
keil_5
Keil μVision 5 也称MDK-ARM、Realview MDK
MDK ——》Microcontroller Development Kit
keil_5的构成
MDK包含以下几个部分:
μVision5:一种集成开发环境,提供了多种不同的功能,如编辑器、编译器、调试器等。
ARM编译器:一种嵌入式ARM C / C++编译器,可在多种不同的微控制器平台上运行。
Device Family Pack:一种特定于属于不同微控制器平台/系列/型号的软件包,包括库文件、设备描述文件等。
Debugger:一款高级调试器,支持多种不同的调试功能,如单步调试、断点调试、内存映射等。
8.开发软件的使用
8.1 STM32CubeMX
- 新建工程

- 选择芯片的型号


- 界面介绍

- 开启下载引脚

- 选择文件存放的位置

- 生成代码



8.2 keil5
使用keil5打开进行编译

在控制台显示0 err 表示没问题。
- 选择下载器

9.电路中常见的电子元器件
电阻


电阻的作用:一般用来限制电流,保护电路当中的元器件,和一些电容等其他元器件组成相关功能的电路。
电容


电容在电路中常见的作用:滤波,平稳电流,保护作用,和电阻一起还可以组成一些其他作用的电路。
二极管

特点:单向导通,反向截止
记忆:将此符号看作一个箭头,顺着箭头的方向,电压降低才导通(压差最小为0.7v),否则相当于电阻无穷大。
有一种二极管在其导通时可以发光,这种二极管叫做发光二极管(Light Emitting Diode)
发光二极管又叫LED
三极管
三极管一般分为两种类型: PNP类型 NPN类型
NPN型三极管

基极高于发射极
基本上三极管最常见的作用就是开关的作用,我们可以将三极管理解为一个电控的开关,当基极高于发射极的时候,集电极与发射极导通,电流从集电极流向发射极。(高电平导通)
PNP型三极管

基极低于发射极
当基极低于发射极的时候,集电极与发射极导通,电流从发射极流向集电极。(低电平导通)
更多推荐



所有评论(0)