前言
这篇博客是为了收录网络上的stm32面试题和自己遇到一些面试题所创,后期不定期更新!
本文部分非原创,内容转载或搬运加工来源以下博客。
原文链接:https://blog.csdn.net/weixin_54015326/article/details/136110175
型号对比
Q1:STM32F1和F4的区别
1.内核不同:f1是cortex M3内核,f4是cortex M4内核
2.频率不同:f1主频72mhz,f4主频168mhz
3.浮点运算:f1无浮点运算单位,f4有
4.功能性能:f4外设比f1功能更加强大,如gpio翻转速率,上下拉电阻配置,adc精度等。
5.内存大小:f1内部sram最大64k,f4有192k(112+64+16).
启动过程
Q1:STM32启动过程
STEP1:通过boot引脚设定,设置启动方式
STEP2:设置堆栈大小,然后定义中断向量表
STEP3:pc指针指向复位程序 RESET_HANDLER
STEP4:运行初始化栈指针 __initial_sp
STEP5:设置系统时钟
STEP6:调用c库函数 __MAIN
GPIO
Q1:GPIO工作模式
(1) GPIO_Mode_AIN 模拟输入
(2) GPIO_Mode_IN_FLOATING 浮空输入
(3) GPIO_Mode_IPD 下拉输入
(4) GPIO_Mode_IPU 上拉输入
(5) GPIO_Mode_Out_OD 开漏输出
(6) GPIO_Mode_Out_PP 推挽输出
(7) GPIO_Mode_AF_OD 复用开漏输出
(8) GPIO_Mode_AF_PP 复用推挽输出
Q2:GPIO工作模式的配置方式
UART
Q1:串行通信方式介绍
>同步通信:I2C半双工,SPI全双工
>异步通信:RS485半双工,RS232全双工
Q2:串行配置
串口设置的一般步骤可以总结为如下几个步骤:
(1)串口时钟使能,GPIO时钟使能
(2)串口复位
(3)GPIO端口模式设置
TX的GPIO工作模式为:GPIO_Mode_AF_PP;//复用推挽输出
RX的GPIO工作模式为:GPIO_Mode_IN_FLOATING;//浮空输入
(4)串口参数初始化
主要包含:波特率设置(115200)、8个数据位、1个停止位、无奇偶校验位、无硬件数据流控制、收发模式。
(5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
(6)使能串口
(7)编写中断处理函数
IIC
Q1:IIC总线在空闲时sda和scl的电平是怎么样的
在空闲时SDA和SCL都为高电平
Q2:IIC总线传输工程中的三种类型信号
开始信号
开始信号:在SCL为高电平时,SDA从高置为低,则为开始信号,IIC开始传输数据
结束信号
结束信号:在SCL为高电平时,SDA从低置为高,则为结束信号,IIC结束传输数据
应答信号
应答信号:主机接受8位数据之后,SDA至低,然后SCL从低置为高维持一个电平时间为ack,表示已经收到信息
非应答信号
非应答信号:主机接受8位数据之后,SDA至高,然后SCL从低置为高维持一个电平时间位nack,表示要开始结束数据的接受
Q3:IIC配置主机模式端口应该怎么配置
硬件模式:复用开漏输出、既不上拉也不下拉。(快速模式:400 Kbit/s)
软件模拟:推挽输出、配置上拉电阻。
Q4:IIC的四种工作模式
标准模式(Standard-mode):最高速率为100 kbit/s。
快速模式(Fast-mode):最高速率为400 kbit/s。
快速模式增强版(Fast-mode Plus):最高速率为1 Mbit/s。
高速模式(High-speed mode):最高速率为3.4 Mbit/s。
超快速模式(Ultra Fast-mode):最高速率为5 Mbit/s,为单向传输,不兼容其他模式
SPI
Q1:SPI需要的数据线
SPI 接口一般使用 4 条线通信:
MISO 主设备数据输入,从设备数据输出。
MOSI 主设备数据输出,从设备数据输入。
SCLK 时钟信号,由主设备产生。
CS 从设备片选信号,由主设备控制。
Q2:SPI需要的数据线
SPI 有四种工作模式,各个工作模式的不同在于 SCLK 不同, 具体工作由 CPOL,CPHA 决定。
CPOL:
CPOL: (Clock Polarity),时钟极性:
SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1:
CPOL 0和1的含义:
CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;
CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;
CPHA:
CPHA:(Clock Phase),时钟相位:
相位,对应着数据采样是在第几个边沿(edge),是第一个边沿还是第二个边沿,
CPHA 0
0对应着第一个边沿,1对应着第二个边沿。对于:
CPHA=0,表示第一个边沿:
对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;
对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;
CPHA 1
CPHA=1,表示第二个边沿:
对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;
对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;
CAN
Q1:CAN如何判断总线电平
CAN控制器根据 CAN_L 和 CAN_H上 的电位差来判断总线电平。
Q2:CAN总线电平的分类
总线电平分为显性电平和隐性电平
DMA
Q1:什么是dma
1.直接存储器存取(DMA) 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
2.无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。
Q2:DMA传输模式有几种?
DMA_Mode_Circular 循环模式
DMA_Mode_Normal 正常缓存模式
应用场景:GPS、蓝牙,都是用的循环采集,DMA_Mode_Circular模式。
中断
Q1:stm32 中断控制器支持多少个外部中断
支持19个外部中断/事件请求
其中15个中断/事件为
GPIO 的管脚 GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线 0 ~ 15。
另外四个EXTI线的连接方式如下:
● EXTI线16连接到PVD输出
● EXTI线17连接到RTC闹钟事件
● EXTI线18连接到USB唤醒事件
● EXTI线19连接到以太网唤醒事件(只适用于互联型产品)
时钟系统
Q1:STM32有几个时钟源?
STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。
①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。
②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。
③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。
④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。
⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。
2万+

被折叠的 条评论
为什么被折叠?



