单片机初级(持续更新)

news/2024/9/29 1:19:06/

        单片机是一种单片微型计算机的简称(MCU),采用集成电路技术将有数据处理能力的中央处理器、随机存储器、只读存储器、定时器/计时器、多种IO口与中断系统等功能集成在一块硅片上。

        开发板/最小系统板

        开发板通常是学习用途,功能齐全,接口丰富,适用于研发、学习

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 电平转换等外设。

资源扩展板主要用于微控制器入门外设的使用,硬件图纸原理以及项目案例的应用开发学习。

        系统架构

STM32G0

系统主要由以下几个模块组成 :

● 二个主模块 :

– Cortex-M0+ 内核及先进高性能总线 (AHB bus)

– 通用 DMA (通用的直接存储器存取)

● 三个从模块 :

– 内部 FLASH

– 内部SRAM

– AHB和AHB到APB的连接桥,所有的外设都挂在APB总线上

问:flash和SRAM的区别?

Flash存储器是一种非易失性存储器,可以在掉电之后保存数据,通常用于存储程序代码。Flash存储器的可写入次数有限,且需要执行擦除操作才能写入新的数据,因此,在使用过程中需要注意擦写周期和数据备份问题。

SRAM存储器则是一种易失性存储器,具有相对较快的读写速度和无限的读写次数,但掉电时将会丢失所有内容。SRAM存储器主要用于暂存数据和临时变量,读写操作由CPU直接完成,访问速度较快。

单片机的Flash存储器和SRAM存储器通常都嵌入在单片机芯片内部,能够方便地实现对程序和数据的读写操作。通常,编译器会将程序代码烧录到Flash存储器中,并使用SRAM存储器来存储变量、函数堆栈和其他临时数据。

问:什么是外设?如何理解片上外设

与传统的外设不同,片上外设通常具有以下优点:

高效性:片上外设能够与主处理器实现高速的数据传输,响应时间短,执行效率高。

集成度高:片上外设多个模块都嵌入到处理器芯片内部,极大地降低了PCB面积和电路复杂度。

低功耗:处理器和片上外设采用相同的工艺,能够满足高密度和低功耗的需求。

可靠性高:提高了整体系统的可靠性和稳定性,也降低了电磁干扰的可能。

问:AHB和APB的区别?

AHB是高速总线,是一种系统总线,它主要负责连接处理器、DMA等一些内部接口。AHB系统由主模块、从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。

APB是低速总线,它主要负责连接外围设备,它又分为APB1和APB2,它的总线架构不像 AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。

        ARM

  • ARM可以表示一些处理器的统称

早期经典处理器:ARM7 ARM9 ARM11

后续处理器开始以cortex命名

Cortex-A系列

针对开放式操作系统的高性能处理器

应用于智能手机、数字电视、智能平板等高端运用

Cortex-R系列

提供非常高的性能和吞吐量,同时保持精准的时序属性和可预测的中断延时,通常用于时序关键的应用中

针对实时系统、满足实时性的控制需求

应于汽车制动系统、动力系统等

Cortex-M系列

单片机驱动的系统提供了低成本优化方案

应用于传统的微控制器市场、智能传感器、汽车周边、物联网设备等

  • ARM表示一种指令集一种计数)

指令:能够指示处理器执行命令称为指令 + - << >>

指令集:处理器能够识别的指令的集合称为指令集

ARM指令集:所有指令(机器码),都专用32bit存储空间,代码灵活,指令简洁,执行ARM指令PC每次自加4

Thumb指令集:所有指令(机器码),都专用16bit存储空间,代码灵活,指令简洁,执行ARM指令PC每次自加2

ARM的命名有指令集架构、 处理器架构、 处理器型号三类命名规则

架构:

arm-v4,arm-v5,arm-v6,arm-v7(32Bits),arm-v8(64Bits)

        ARM内部结构

        Cortex-M33的寄存器

(1)通用寄存器

R0-R12:13个通用寄存器。其中 R0-R7为低端寄存器,可作为16位或32 位指令操作数,R8-R12为高端寄存器,只能用作32位操作数

R13:栈指针寄存器 SP(the stark pointer)

R14:链接寄存器LR(the link register),用于存储子程序或者函数调用的返回地址

R15:程序计数器PC(the program counter register)存储下一条将要执行的指令的地址。

(2)特殊寄存器XPSR

xPSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成

应用程序状态寄存器 (APSR):保存程序计算结果的状态标志 N负数标志 Z零标志 C进位借位标志 V溢出标志

中断程序状态寄存器 (IPSR):包含当前ISR(中断服务程序)的异常编号

执行程序状态寄存器 (EPSR):包含Thumb状态位

CONTROL:控制寄存器

控制处理器处于线程模式时,使用哪个堆栈

=0,使用MSP 处理器模式时,固定使用MSP

=1,使用PSP

        CPU运行原理

一条指令(机器码)的执行通常分为三个阶段:

1)取指:控制器将PC寄存器中的值发送给内存,内存将对应地址中的指令(机器码)传送回CPU的指令寄存器IR中

2)译码:指令译码器对IR中的指令进行识别,将指令(机器码)解析(翻译)成具体的运算操作(+/-/*...)

  1. 执行:控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器

注意:PC每取地址一次,自加一次。PC的值自动增加使PC指向内存中的下一条指令

思考:

1.运算器不同,处理指令不同。不同的处理器上如何运行同一个c语言程序?

2.假设指令集有乘法指令,结果并没有加法运算器,怎么办?

可以转换为加法指令

        汇编语言

  1. 汇编整体分类

1》指令:编译完生成一条机器码存储在内存单元当中,CPU执行时能完成对应的操作(类似于C中的语句)

2》伪操作(相当于c中的#的内容,告诉编译器怎么编译):不会生成机器码也不会占用内存,其作用是告诉编译器怎样编译(类似于C中的预处理指令)

3》伪指令:不是指令,编译器在编译时将其替换成等效的指令 (如:cpu中没有除法器,对应没有除法法指令,使用>>,替换实现)

汇编中注释代码用@或;注释一行 ,/* */注释一段代码  

2、指令分类

1.数据处理指令: 对数据进行逻辑、算数运算

2.跳转指令: 实现程序的跳转,实质是修改PC

3.Load/Store指令: 对内存的读写操作

4.状态寄存器传送指令:对状态寄存器进行读写操作

5.异常中断产生指令:触发软中断,常用于内核的系统调用 //SWI:软中断

6.协处理器指令:操作协处理器的指令


http://www.ppmy.cn/news/1531319.html

相关文章

公私域互通下的新商机探索:链动2+1模式、AI智能名片与S2B2C商城小程序的融合应用

摘要&#xff1a;在数字化时代&#xff0c;公私域流量的有效融合已成为企业获取持续增长动力的关键。本文旨在探讨如何通过链动21模式、AI智能名片以及S2B2C商城小程序源码的综合运用&#xff0c;实现公私域流量的高效互通&#xff0c;进而为门店创造巨大商机。通过分析这些工具…

基于QT的C++中小项目软件开发架构源码

描述 基于QT信号槽机制实现类之间的交互调用通信&#xff0c;适用于使用不同枚举作为消息交互的类型场景&#xff0c;支持附带任意参数&#xff0c;代码使用方式参考前一篇文章 特性 代码简洁&#xff0c;不超过100行仅需包含一个头文件Communicator.h&#xff0c;需要通信的…

Java设计模式——工厂模式扩展

5.5 工厂模式扩展 简单工厂配置文件解除耦合 &#xff08;spring底层类似&#xff09; 可以通过工厂模式配置文件的方式解除工厂对象和产品对象的耦合。在工厂类中加载配置文件中的全类名&#xff0c;并通过反射技术创建对象进行存储&#xff0c;客户端如果需要对象&#xf…

2024云手机推荐与排行:怎样选择最适合的云手机?

在当前市场上&#xff0c;云手机品牌繁多&#xff0c;既有老牌的稳定产品&#xff0c;也有新晋品牌异军突起。不同品牌的云手机因其配置、性能、功能等方面的差异&#xff0c;带来的使用体验也各不相同。为了帮助大家更好地挑选适合的云手机设备&#xff0c;我们将对市面上一些…

ubuntu如何开启和关闭图形界面

在Ubuntu中&#xff0c;你可以根据需要开启或关闭图形界面。以下是具体的方法&#xff1a; 关闭图形界面 方法一&#xff1a;使用 systemctl 命令 打开终端。输入以下命令切换到多用户目标&#xff08;相当于关闭图形界面&#xff09;&#xff1a;sudo systemctl set-defaul…

JAVA零基础入门——高级教程之集合框架

目录 1. 关于集合框架 1.1 集合接口 1.2 集合实现类 1.3 集合算法及迭代器和比较器的使用 2. 数据结构 2.1 ArrayList 2.2 LinkedList 2.3 HashMap 2.4 HashSet 3. 迭代器 1. 关于集合框架 集合框架是使用数据结构&#xff08;参见本文2. 数据结构&#xff09;来满…

机器学习笔记(一)初识机器学习

1.定义 机器学习是一门多学科交叉专业&#xff0c;涵盖概率论知识&#xff0c;统计学知识&#xff0c;近似理论知识和复杂算法知识&#xff0c;使用计算机作为工具并致力于真实实时的模拟人类学习方式&#xff0c;并将现有内容进行知识结构划分来有效提高学习效率。 机器学习有…

el-table+el-form实现表单校验和解决不垂直居中导致的问题

el-tableel-form实现表单校验 1.实现el-table的表单校验 关键点123 2.解决不垂直居中导致的问题 问题效果图 解决方案 .item-align-center {display: inline-flex; }