STM32单片机 day01

0. 大纲

  1. MCU基础+ARM体系结构
  2. STM32-GPIO编程
  3. STM32-通信(UART、IIC、SPI)
  4. STM32-中断系统
  5. STM32-时钟系统
  6. STM32-定时器+ADC
  7. STM32-DMA+屏幕使用

1. 计算机基础

1.1. 计算机组成

输入设备,输出设备,存储器,运算器,控制器

  1. 输入设备:将其他物理量转化为计算机可识别的电信号
  2. 输出设备:将电信号转化为人或者其他设备能理解的信号
  3. 运算器:CPU对信息处理和运算的部件,常进行算术运算和逻辑运算,其核心是算术逻辑单元ALU,CPU中用各种各样的数字电路搭配成各种各样的运算电路,如:加、减法等。
  4. 控制器:计算机的指挥中心
  5. 存储器:存放程序和数据,计算机实现存储程序控制的基础,RAM(内存),ROM(磁盘)

1.2. 三级存储

名称cache内存(主存)硬盘(辅存)
运行速度速度快速度中速度最慢
价格
容量小(10MB)中(16GB)大(1TB)
断电断电丢失断电丢失断电不丢失
CPU访问CPU可以直接访问CPU可以直接访问CPU不能直接访问
存储执行程序中活跃的部分存储当前正在执行的程序和数据存储暂时不运行的程序和数据,需要时再传送到主存
举例比如游戏的方向技能等游戏程序的依赖游戏的程序本体

Cache 对程序员来说一般会有透明性,也就是程序员其实看不到 Cache 的,因此不能对它进行操作

1.3. IO逻辑

 计算机系统中的高低电平逻辑1,0,数据在计算机中的存储、传输、运算都是以二进制形式进行的。

1.4. 总线

 计算机各部件之间传输信息的公共通信干线。由导线组成的传输线束。 每条传输线一次传1位二进制数。

分类数据总线地址总线控制总线
CPU操作传输数据访问存储地址对外部设备进行控制
宽度决定CPU与外界的数据传输速度最大数据传输量CPU能访问到的最大内存地址寻址能力决定CPU对外部器件的控制能力

DMA总线
直接存储器访问,作用是不通过CPU直接在存储器和外部设备之间进行数据传输

2. 单片机

2.1. 单片机简介

  1. 单片微型计算机(SCM),微控制单元(MCU)(1990年以后)
  2. 组成:CPU,随机存储器 RAM,只读存储器ROM,定时器/计时器,多种I/O口,中断系统
  3. 小而完善的微型计算机系统

SoC: 片上系统

  1. 产品
     有专用目标的集成电路
  2. 技术
     确定功能——》软/硬件划分——》完成设计
  3. SoC就是定制功能的MCU

2.2. 单片机型号

  1. 51单片机
     1. STC89C51——宏晶科技 STC
     2. AT89C51——ATMEL
  2. 32单片机
     1. STM32——意法半导体ST
     2. GD32——兆易创新GD

2.3. 开发板/最小系统板

开发板: 开发板通常是学习用途,研发、研究、学习
最小系统板: 最小系统板是个核心板,常用于做项目,也可以作为模块在产品里在直接用。

3. STM32

3.1. 简介

STM32是意法半导体公司生产一款32位的微控制器。
在这里插入图片描述

3.2. STM32 的优势

  1. 产品型号丰富,可选择性强;
  2. 运算速度快,功耗低;
  3. 处理器外设接口丰富;
  4. 库函数开发体系学习资料多,应用广泛。
    在这里插入图片描述

3.3. 命令规范

ST——意法半导体
M——微控制器
32——32位处理器
U——超低功耗
575——型号
R——64引脚
I——存储:2MB
T——TQFP封装
6—— -40 ~ 85

4. ARM(CPU)体系结构

4.1. 认识ARM

  1. ARM是一家公司,不制造芯片且不向终端用户出售芯片,只转让设计方案
  2. ARM可以表示一些处理器的统称
    Cortex-X系列
     超高性能,为AI赋能,为人工智能运行提供效能
    Cortex-A系列
     针对开放式操作系统的高性能处理器
     应用于智能手机、数字电视、智能平板等高端运用
    Cortex-R系列
     提供非常高的性能和吞吐量,同时保持精准的时序属性和可预测的中断延时,通常用于时序关键的应用中,针对实时系统、满足实时性的控制需求
     应于汽车制动系统、动力系统等
    Cortex-M系列
     为单片机驱动的系统提供了低成本优化方案
     应用于传统的微控制器市场、智能传感器、汽车周边、物联网设备等
  3. ARM表示一种指令集
     ARM指令集:所有指令(机器码),专用32bit存储空间,代码灵活,指令简洁,执行ARM指令PC每次自加4
  4. ARM的命名有指令集架构、 处理器架构、 处理器型号三类命名规则
    架构,架构指支持的汇编指令集

问:目前主流处理器架构?
 ARM架构、Intel X86/X64架构、MIPS架构、RISC-V(开源)

4.2. 指令集(RISC和CISC)

在这里插入图片描述

  1. 精简指令集(RISC):微处理器
     只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛
     举例:如有加法运算器 ,没有乘法运算器
  2. 复杂指令集(CISC);电脑CPU
     不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定
     CISC处理器在性能上有很大优势,多用于PC及服务器等领域

4.3. Cortex-M33的寄存器

通用寄存器
 R0-R12:13个通用寄存器。其中 R0-R7为低端寄存器,可作为16位或32 位指令操作数,R8-R12为高端寄存器,只能用作32位操作数
 R13:栈指针寄存器 SP(the stark pointer),它用于访问堆栈内存(例如,堆栈PUSH或POP操作)。
 R14:链接寄存器LR(the link register),用于存储子程序或者函数调用的返回地址
 R15:程序计数器PC(the program counter register)存储下一条将要执行的指令的地址。

特殊寄存器
在这里插入图片描述
xPSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成

  1. 应用程序状态寄存器 (APSR):保存程序计算结果的状态标志 N负数标志 Z零标志 C进位借位标志 V溢出标志
  2. 中断程序状态寄存器 (IPSR):包含当前ISR(中断服务程序)的异常编号
  3. 执行程序状态寄存器 (EPSR):包含Thumb状态位
    在这里插入图片描述
    CONTROL:控制寄存器
    控制处理器处于线程模式时,使用哪个堆栈
     =0,使用MSP 处理器模式时,固定使用MSP
     =1,使用PSP

4.4. CPU运行原理

  1. 取指:控制器将PC寄存器中的值发送给内存,内存将对应地址中的指令传送回CPU的指令寄存器IR中
  2. 译码:指令译码器对IR中的指令进行识别,将指令解析成具体的运算操作
  3. 执行:控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器

4.5. 指令流水线

在这里插入图片描述

4.5. ARM的数据类型

  1. char(字节):8位
  2. halfword(半字):16位
  3. word(全字):32位

4.6. 字节序

ARM一般使用的是小端对齐,低地址存到低地址,高地址存放到高地址

4.7. ARMv8-M的指令集

ARM

  1. ARM指令集 32位精简指令集;
  2. 指令长度固定;降低编码数量产生的耗费,减轻解码和流水线的负担;

Thumb

  1. Thumb指令集指令宽度16位;
  2. Thumb指令集是ARM指令集的一个子集;
  3. 与32位指令集相比,大大节省了系统的存储空间;(密度高)
  4. Thumb指令集不完整,所以必须配合ARM指令集一同使用。

问:Thumb指令集和ARM指令集的区别?

STM32G0

在这里插入图片描述
系统主要由以下几个模块组成 :
● 二个主模块 :
– Cortex-M0+ 内核及先进高性能总线 (AHB bus)
– 通用 DMA (通用的直接存储器存取)
● 三个从模块 :
– 内部 FLASH
– 内部SRAM
– AHB和AHB到APB的连接桥,所有的外设都挂在APB总线上

问:flash和SRAM的区别?
 Flash存储器是一种非易失性存储器,可以在掉电之后保存数据,通常用于存储程序代码。Flash存储器的可写入次数有限,且需要执行擦除操作才能写入新的数据,因此,在使用过程中需要注意擦写周期和数据备份问题。
 SRAM存储器则是一种易失性存储器,具有相对较快的读写速度和无限的读写次数,但掉电时将会丢失所有内容。SRAM存储器主要用于暂存数据和临时变量,读写操作由CPU直接完成,访问速度较快。
 单片机的Flash存储器和SRAM存储器通常都嵌入在单片机芯片内部,能够方便地实现对程序和数据的读写操作。通常,编译器会将程序代码烧录到Flash存储器中,并使用SRAM存储器来存储变量、函数堆栈和其他临时数据。

问:什么是外设?如何理解片上外设?
与传统的外设不同,片上外设通常具有以下优点:

  1. 高效性:片上外设能够与主处理器实现高速的数据传输,响应时间短,执行效率高。
  2. 集成度高:片上外设多个模块都嵌入到处理器芯片内部,极大地降低了PCB面积和电路复杂度。
  3. 低功耗:处理器和片上外设采用相同的工艺,能够满足高密度和低功耗的需求。
  4. 可靠性高:提高了整体系统的可靠性和稳定性,也降低了电磁干扰的可能。

问:AHB和APB的区别?
 AHB(高级高性能总线)是高速总线,是一种系统总线,它主要负责连接处理器、DMA等一些内部接口。AHB系统由主模块、从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。
 APB(高级外设总线)是低速总线,它主要负责连接外围设备,它又分为APB1和APB2,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。

STM32单片机上解析GPS数据的方法可以使用DMA环形缓冲区来实现。首先,配置DMA通道以接收GPS数据,并将接收到的数据存放到环形缓冲区中。然后,在主程序中,可以解析环形缓冲区中的数据。解析GPS数据的关键在于将缓冲区中的字节转换成字符串,并在字符串中查找GPS报文的头部标识和尾部标识。在查找到完整的GPS报文后,可以根据需要提取其中的信息,比如定位信息、时间等。 为了实现GPS数据的解析,可以使用一些相关的文件和结构体。在项目资源管理器中会自动添加packages目录,其中包含了以下文件:gps_rmc.c、gps_rmc.h和rtt_gps_rmc_example.c。gps_rmc.c文件实现了GPS RMC数据格式转换和定位信息解析的方法。gps_rmc.h文件定义了GPS RMC信息解析数据的存储结构体。rtt_gps_rmc_example.c文件是一个GPS组件初始化调试例程,可以参考其中的代码进行开发。 此外,还可以使用一些结构体来存储GPS数据。例如,可以使用GPS_STRUCT结构体来存储GPS的日期、时间、位置等信息。其中的year、month、day、hour、minute、second等字段分别表示年、月、日、时、分、秒。x、y、z字段表示GPS的位置坐标。star_amount字段表示可见卫星数量。还可以使用GPS_MESSAGE_TYPE_STRUCT结构体来存储GPS报文的类型和在环形缓冲区中的位置。 综上所述,要在STM32单片机上解析GPS数据,可以使用DMA环形缓冲区来接收数据,并使用相应的文件和结构体进行数据解析。通过将缓冲区中的字节转换成字符串,并查找GPS报文的头部和尾部标识,可以提取出需要的GPS信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【RT-Thread】STM32的UART设备读取GPS数据](https://blog.youkuaiyun.com/u010440719/article/details/127888667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [STM32F407 单片机+DMA+环形缓冲区+GPS报文解析](https://blog.youkuaiyun.com/ba_wang_mao/article/details/115530153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值