文章目录
- 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上拉电阻的作用?
| 不同点 | IIC | SPI |
|---|---|---|
| 工作模式与线的数目 | IIC总线是半双工,高电平采样,2根线SCL SDA | SPI总线实现全双工,边沿采样,4根线SCK CS MOSI MISO |
| 速度 | IIC总线速度为:0Hz - - 3.4MHz | SPI的速度要远远高于IIC,SPI总线速度为:几MHz - -几十MHz |
| 流控方面 | IIC存在ACK应答信号,所以有流控机制 | SPI缺乏流控机制,无论主器件还是从器件均不对消息进行确认,主器件无法知道从器件是否繁忙 |
| 设备的选择 | IIC总线是多主机总线,通过SDA上的地址信息来锁定从设备 | SPI总线只有一个主设备,主设备通过CS片选来确定从设备 |
相同点:
IIC总线和SPI总线时钟都是由主设备产生,并且只在数据传输时发出时钟。
IIC上拉电阻的作用:让空闲的设备保持在高电平状态,增强抗干扰能力。
14.TTL RS232 RS485的接口电平是多少?
| 接口 | 低电平 | 高电平 |
|---|---|---|
| TTL | 0V至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接口