news 2026/4/25 18:05:24

【技术点】嵌入式技术考点八:单片机STM32

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【技术点】嵌入式技术考点八:单片机STM32

文章目录

    • 1.上拉电阻和下拉电阻的作用是什么?上拉二极管和下拉二极管作用是什么?
    • 2.推挽输出和开漏输出的原理是什么?
    • 3.位操作设置为1或设置成0?
    • 4.请简述对DMA操作的认识和理解。
    • 5.启动文件做了什么事情?
    • 6.模数转换的过程?
    • 7.介绍一下STM32 GPIO?
    • 8.请画出SPI的四种通信时序图?IIC的通信时序图
    • 9.typedef和#define有什么区别
    • 10.USART/UART的通信过程,数据包格式?
    • 11.SPI的通信过程,数据包格式?
    • 12.IIC的通信过程,数据包格式?
    • 13.详细描述SPI接口与IIC(I2C)接口通信的异同点。IIC上拉电阻的作用?
    • 14.TTL RS232 RS485的接口电平是多少?
    • 15.关键字volatile有何含义?请举3个例子。
    • 16.参数既可以是const还可以是volatile吗?指针可以是volatile 吗?
    • 17.简述STM32中断抢占优先级与响应优先级。
    • 18.硬实时任务和软实时任务的概念理解。
    • 19.看门狗的作用。
    • 20.三极管与CMOS管的作用与区别。
    • 21.M4芯片有哪些外设?

1.上拉电阻和下拉电阻的作用是什么?上拉二极管和下拉二极管作用是什么?

上拉电阻是设置默认的电平是高电平。下拉电阻是设置默认电平是低电平
上拉和下拉二极管都是起到保护作用,防止输入电压过高或过低造成芯片烧毁。

2.推挽输出和开漏输出的原理是什么?

推挽输出:p-mos管和n-mos管正常工作,当输出高电平时,p-mos管导通,n-mos管不导通,输出高电平;当输出低电平时,p-mos管不导通,n-mos管导通,输出低电平;

开漏输出:n-mos管正常工作,当输出高电平或者低电平,只有n-mos管导通,输出低电平。

3.位操作设置为1或设置成0?

4.请简述对DMA操作的认识和理解。

DMA:全称Direct Memory Access(直接存储器访问),把一个地址空间的值“复制”到另一个地址空间,使用DMA传输方式无需CPU直接控制传输,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。

作用:为CPU减负。

5.启动文件做了什么事情?

  • 栈的初始化,提供函数调用的时候进行现场保护和现场恢复
  • 堆的初始化,为申请内存提供空间,调用malloc
  • 初始化中断服务函数入口
  • 执行Reset_Handler,意思说上电复位后执行的动作
  • 执行SystemInit函数
  • 跳转到main函数

6.模数转换的过程?

抽样:周期性的选择对应的点
量化:测量抽样点的电压
编码:输出为二进制,并保存在寄存器中

7.介绍一下STM32 GPIO?

STM32中,GPIO可以用于实现数字输入输出、中断、事件捕捉等功能,同时还能够与其他外设进行复杂的联合应用,如SPI、I2C、UART等。

GPIO的引脚复用功能,可以通过选择不同的复用功能,将GPIO引脚作为其他外设的输入输出端口,如ADC、TIM、USART等

GPIO的工作模式,包括输入模式和输出模式。
GPIO的输出类型,包括推挽输出和开漏输出。
GPIO的中断模式,可以通过配置GPIO的中断模式来实现外部中断、事件捕捉等功能。

8.请画出SPI的四种通信时序图?IIC的通信时序图

SPI时序图:
CPOL(Clock Polarity):时钟极性选择;
(1)CPOL=0 SPI总线空闲时(片选引脚为高电平),时钟线为低电平
(2)CPOL=1 SPI总线空闲时(片选引脚为高电平),时钟线为高电平

CPHA(Clock Phase):时钟相位选择
(1)CPHA=0 在SCLK第一个跳变沿,主机对MISO引脚电平采样;主机的数据发送则在第二个跳变沿
(2)CPHA=1 在SCLK第二个跳变沿,主机对MISO引脚电平采样。主机的数据发送则在第一个跳变沿

(1)CPHA=0、CPOL=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿(准备数据),(发送数据)数据发送是在下降沿

(2)CPHA=0、CPOL=1:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,即SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿

(3)CPHA=1、CPOL=0:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,即SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。

(4)CPHA=1、CPOL=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,即SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。

IIC时序图

数据的有效性:

起始和停止条件:

应答信号:

9.typedef和#define有什么区别

(1)作用范围:typedef是在编译时对类型进行别名定义,而#define是在预处理阶段对文本进行替换。
(2)使用方式:typedef用于创建类型别名,使用方法为typedef <原类型> <别名>;#define用于定义符号常量或带参数的宏,使用方法为#define <符号> <替换值>
(3)类型安全性:typedef在进行类型别名定义时会保留原类型的所有语义和类型检查,#define进行文本替换,不进行类型检查

10.USART/UART的通信过程,数据包格式?

usart:是一种广泛应用于串行通信的接口标准,同步/异步收发器。
uart:常见的串行通信接口标准,通用异步收发器

基本过程:
(1)配置参数:配置USART的工作模式和通信参数,如波特率(通信速度)、数据位数、校验位和停止位等。
(2)发送数据:将要发送的数据按数据位数进行分割,并将每一位依次发送。
(3)接收数据:等待接收端发送的数据。
(4)错误检测和处理:USART会进行校验位的验证,以检测传输过程中是否存在错误。
(5)中断处理:USART通常支持中断机制,可以在数据发送或接收完成时生成中断请求,通知主控制器进行相应的处理。
(6)重复发送和接收:可以重复执行发送和接收的步骤,以实现连续的数据传输。

数据包格式:起始位(一个低电平信号) + 数据位(通常为8位) + 校验位(偶校验和奇校验) + 停止位(一个或多个高电平信号)

11.SPI的通信过程,数据包格式?

SPI:串行通信接口标准

通信过程:
(1)主设备选择从设备:主设备通过选择特定的片选引脚,选择要与之通信的从设备。
(2)数据传输:主设备向从设备发送数据,并同时接收从设备返回的数据。
(3)时钟信号同步:主设备通过提供时钟信号来同步数据传输。
(4)数据帧传输:数据被分成一系列的数据帧进行传输。

数据包格式:
没有固定的数据包格式。

12.IIC的通信过程,数据包格式?

I2C:串行通信接口标准,串行总线

通信过程:
a.主设备发起通信:主设备发送一个起始信号,表明它要与从设备进行通信。
b.地址传输:主设备发送从设备的地址,并指定是读取数据还是写入数据。
c.数据传输:主设备发送或接收数据到 从设备。在每个数据字节之后,从设备反馈一个应答信号。
d.终止通信:主设备发送一个停止信号,表示通信结束。

数据包格式:
(1)起始信号:一个低电平到高电平的转变,表示通信开始。
(2)从设备地址和读/写位:主设备发送从设备的地址,并指定是要读取数据还是写入数据。
(3)数据字节:主设备发送或接收的数据字节。
(4)应答信号:从设备在每个数据字节之后发送一个应答信号。
(5)停止信号:一个高电平到低电平的转变,表示通信结束。

13.详细描述SPI接口与IIC(I2C)接口通信的异同点。IIC上拉电阻的作用?

不同点IICSPI
工作模式与线的数目IIC总线是半双工,高电平采样,2根线SCL SDASPI总线实现全双工,边沿采样,4根线SCK CS MOSI MISO
速度IIC总线速度为:0Hz - - 3.4MHzSPI的速度要远远高于IIC,SPI总线速度为:几MHz - -几十MHz
流控方面IIC存在ACK应答信号,所以有流控机制SPI缺乏流控机制,无论主器件还是从器件均不对消息进行确认,主器件无法知道从器件是否繁忙
设备的选择IIC总线是多主机总线,通过SDA上的地址信息来锁定从设备SPI总线只有一个主设备,主设备通过CS片选来确定从设备

相同点:
IIC总线和SPI总线时钟都是由主设备产生,并且只在数据传输时发出时钟

IIC上拉电阻的作用:让空闲的设备保持在高电平状态,增强抗干扰能力

14.TTL RS232 RS485的接口电平是多少?

接口低电平高电平
TTL0V至0.8V之间2.2V至5V之间
RS232-3V至-15V之间+3V至+15V之间
RS485-0.2V至-0.5V之间+0.2V至+0.5V之间

15.关键字volatile有何含义?请举3个例子。

volatile:确保本条指令不会因编译器的优化而省略,且要求每次直接读值,即不是从寄存器里取备份值,而是去该地址内存储的值.

举例:
(1)并行设备的硬件寄存器(如:状态寄存器)
(2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
(3)多线程应用中被几个任务共享的变量

16.参数既可以是const还可以是volatile吗?指针可以是volatile 吗?

可以,只读的状态寄存器,它是volatile因为它可能被意想不到地改变。也可以是const因为程序不应该试图去修改它。

可以,当一个中服务子程序修该一个指向一个buffer的指针时。

17.简述STM32中断抢占优先级与响应优先级。

抢占优先级和响应优先级,其实是一个中断所包含的两个优先级。

  • 抢占优先级:对抢占优先级的级别划分。
  • 响应优先级:相同抢占优先级的优先级别的划分。

比如:
中断A抢占优先级比B高,那么A的中断可以在B里面触发,忽略响应优先级。
A和B抢占优先级相同,则A、B的响应优先级决定谁先响应。

18.硬实时任务和软实时任务的概念理解。

(1)硬实时对满足时限的要求比软实时严格,通常硬实时的系统响应时间在ms或μs级,而软实时对其响应时间的要求没有那么严格。
(2)硬实时工作通常指超过时限要求就会造成严重损害的工作,而软实时即使超过时限也不会带来严重后果。

19.看门狗的作用。

作用:用来防止万一单片机程序出错造成重大损失的。
原理:它在硬件上就是一个定时器,当它溢出的时候就会让单片机强制复位使程序重新开始执行。

20.三极管与CMOS管的作用与区别。

三极管:

  • 作用:可用于放大、开关控制等应用。
  • 原理:通常由发射极、基极和集电极组成。它根据基极电流的变化来控制集电极电流,从而实现信号放大和开关控制功能。常见的三极管包括NPN和PNP两种类型。
    CMOS管:
  • 作用:CMOS是一种逻辑门电路的基本构建块,用于数字电路应用。
  • 原理:CMOS管是由P型和N型MOS管组成的互补结构。它根据栅极电压的变化来控制通道的导电性。

21.M4芯片有哪些外设?

GPIO、定时器(Timer)、UART(通用异步收发器)、SPI(串行外围设备接口)、I2C(串行总线接口)、模数转换器、脉冲宽度调制、中断控制器、以太网接口、USB接口

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 18:01:26

Python隐蔽通信框架covertutils:构建协议伪装与流量混淆的C2通道

1. 项目概述&#xff1a;一个隐蔽通信框架的诞生在网络安全研究、渗透测试以及某些特定领域的合法合规通信场景中&#xff0c;我们常常会遇到一个核心需求&#xff1a;如何在不可信的网络环境中&#xff0c;构建一条难以被检测、分析和干扰的通信通道。这不仅仅是简单的加密&am…

作者头像 李华
网站建设 2026/4/25 17:58:55

用multiset的upper_bound/lower_bound优化你的LeetCode刷题:以‘数据流的中位数’和‘滑动窗口最大值’为例

用multiset的upper_bound/lower_bound优化你的LeetCode刷题&#xff1a;以‘数据流的中位数’和‘滑动窗口最大值’为例 在算法竞赛和面试刷题中&#xff0c;高效处理动态数据流和滑动窗口问题是常见的挑战。许多程序员在面对这类问题时&#xff0c;虽然知道可以使用multiset&a…

作者头像 李华
网站建设 2026/4/25 17:58:55

open-xiaoai-bridge:让小爱同学语音控制任意智能设备

1. 项目概述&#xff1a;当小爱同学遇见智能家居新玩法最近在折腾智能家居&#xff0c;发现一个挺有意思的项目&#xff0c;叫open-xiaoai-bridge。简单来说&#xff0c;它就像一座桥&#xff0c;把小米的小爱同学语音助手&#xff0c;和你自己搭建的、或者那些小爱同学原生不支…

作者头像 李华
网站建设 2026/4/25 17:54:31

终极NVIDIA Profile Inspector完整指南:解锁显卡隐藏性能的简单教程

终极NVIDIA Profile Inspector完整指南&#xff1a;解锁显卡隐藏性能的简单教程 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾经对NVIDIA显卡的隐藏潜力感到好奇&#xff1f;为什么同样的显卡…

作者头像 李华
网站建设 2026/4/25 17:48:19

3步解锁CrossOver游戏兼容性:Mac游戏优化完整方案

3步解锁CrossOver游戏兼容性&#xff1a;Mac游戏优化完整方案 【免费下载链接】CXPatcher A patcher to upgrade Crossover dependencies and improve compatibility 项目地址: https://gitcode.com/gh_mirrors/cx/CXPatcher 还在为Mac上运行Windows游戏时的卡顿和兼容性…

作者头像 李华