资讯详情

stm32面试题总结

1.嵌入式系统ROM、RAM、Register概念和作用是什么?

  • ROM是只读存储器,断电后能保证数据不会丢失。(硬盘)
  • RAM是随机存储器,断电后数据会丢失.(内存)
  • Register硬件设备用于临时存储相关指令信息或数据信息。

2.嵌入式中断系统的概念和终端执行过程的例子?

中断是指在计算机运行过程中,当主机需要干预时,机器可以自动停止正在运行的程序,并将其转移到处理新情况的程序中。处理后,返回原暂停程序继续运行。

3.STM32的IO哪些工作方法可以分配?

  • GPIO_Mode_AIN 模拟输入
  • GPIO_Mode_IN_FLOATING 浮空输入
  • GPIO_Mode_IPD 下拉输入
  • GPIO_Mode_IPU 上拉输入
  • GPIO_Mode_Out_OD 开漏输出
  • GPIO_Mode_Out_PP 推挽输出
  • GPIO_Mode_AF_OD 复用开漏输出
  • GPIO_Mode_AF_PP 复用推挽输出

4.介绍以下STM32启动过程?

  • 通过Boot引脚设置,寻找初始地址
  • 初始化栈指针 __initial_sp
  • 指向复位程序 Reset_Hander
  • 设置异常中断 HardFault_Handler
  • 设置系统时钟 SystemInit
  • 调用C库函数 _main

在这里插入图片描述

5.串行通信介绍?

  • 同步通信:I2C 半双工,SPI 全双工
  • 异步通信:RS485 半双工、RS232 全双工

6.串口设置的一般步骤可总结如下:

  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. 编写中断处理函数7.

7.USART主要特点? (1)全双工操作(独立接收和发送数据); (2)同步操作时,或从机时钟同步; (3)不占用定时/计数器的独立高精度波特率发生器; (4)支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构; (5)硬件支持的奇偶校验位的发生和检验; (6)数据溢出检测; (7)帧错误检测; (8)包括检测噪声滤波器和数字低通滤波器的错误起始位置; (9)三个完全独立的中断,TX发送完成、TX发送数据寄存器空,RX接收完成; (10)支持多机通信模式; (11)支持倍速异步通信模式。

8.I2C 在传输数据的过程中,总线有三种信号? (1)开始信号:SCL 高电平时,SDA 数据从高电平跳转到低电平跳转。 (2)结束信号:SCL 高电平时,SDA 数据从低电平跳转到高电平跳转结束。 (3)响应信号:接收数据 IC 在接收到 8bit 数据发送到数据后 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单位发出信号后,等待受控单位发出响应信号,CPU 接收响应信号后,根据实际情况判断信号是否继续传输。未收到响应信号的,判断为受控单位故障

9.I2C配置主机模式端口该怎么配置? 硬件模式:复用泄漏输出,既不上拉也不下拉。(快速模式:400 Kbit/s) 软件模拟:推拉输出,配置上拉电阻。

10.I2C仲裁机制? 遵循低电平优先的原则,即谁先发送低电平,谁就有控制总线的权利。

11.SPI需要多少条线?

  • SPI 一般使用接口 4 条线通信:
  • MISO 从设备数据输出输入主设备数据。
  • MOSI 从设备数据输入主设备数据输出。
  • SCLK 由主设备产生的时钟信号。
  • CS 主设备控制从设备片中选择信号。

12.SPI四种通信模式? SPI 有四种工作模式。每种工作模式的区别在于 SCLK 不同, 具体工作由 CPOL,CPHA 决定。

(1)CPOL: (Clock Polarity),时钟极性:

  • SPI的CPOL,表示当SCLK空闲idle电平值为低电平0或高电平1:
  • CPOL=0,时钟空闲idle当时的电平是低电平,所以当SCLK有效时,即高电平,即所谓active-high;
  • CPOL=1,时钟空闲idle当时的电平是高电平,所以当SCLK有效时,即低电平,即所谓active-low;

(2)CPHA:(Clock Phase),时钟相位: 数据采样对应于相位(edge),是第一边还是第二边,0对应第一边,1对应第二边。

  • 对于:CPHA=0,表示第一个边缘:

对于CPOL=0,idle当时是低电平,第一边是从低到高,所以是上升边; 对于CPOL=1,idle当时是高电平,第一个边缘是从高到低,所以是下降边缘;

  • CPHA=1.表示第二个边缘:

对于CPOL=0,idle当时是低电平,第二个边缘是从高到低,所以是下降边缘; 对于CPOL=1,idle当时是高电平,第一边是从低到高,所以是上升边;

13.如何确定使用哪种模式?

  • 首先确认机器需求 SCLK 极性,不工作时是低电位还是高电位 CPOL 为 0 或 1.看原理图,我们把串行同步时钟的空闲状态设置为高电平,所以我们选择 SPI_CPOL_High。也就是CPOL为1
  • 再由slave芯片 datasheet 确认中间的时序图 slave 芯片是在 SCLK 收集数据的下降边缘仍在SCLK的上升沿。

14.CAN总结介绍一下? CAN控制器根据 CAN_L 和 CAN_H上 的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者比居其一。发送方通过使总线电平发生变化,将消息发送给接收方。

15.CAN初始配置步骤

  • 配置相关引脚的复用功能,使能够CAN时钟
  • 设置CAN工作模式及波特率等(CAN波特率为500Kbps )
  • 设置滤波器

16.CAN发送数据格式

  • CanTxMsg TxMessage;
  • TxMessage.StdId=0x12; // 标准标识符
  • TxMesage.ExtId=0x12; // 设置扩展标示符
  • TxMessage.IDE=CAN_Id_Standard; // 标准帧
  • TxMessage.RTR=CAN_RTR_Data; // 数据帧
  • TxMessage.DLC=len; // 要发送的数据长度 发送8个字节
  • for(i=0;i<len;i++)
  • TxMessage.Data[i]=msg[i]; //数据  

17.DMA介绍?         直接存储器存取(DMA) 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

18.DMA传输模式有几种?

  • DMA_Mode_Circular 循环模式
  • DMA_Mode_Normal 正常缓存模式
  • 应用场景:GPS、蓝牙,都是用的循环采集,DMA_Mode_Circular模式。

19.描述一下中断的处理流程? (1)初始化中断,设置触发方式是上升沿/下降沿/双沿触发。 (2)触发中断,进入中断服务函数

20.STM32的中断控制器支持多少个外部中断? STM32的中断控制器支持19个外部中断/事件请求: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连接到以太网唤醒事件(只适用于互联型产品)

21.中断服务函数列表: IO口外部中断在中断向量表中只分配了7个中断向量,也就是只能使用7个中断服务函数。

  • EXTI0_IRQHandler
  • EXTI1_IRQHandler
  • EXTI2_IRQHandler
  • EXTI3_IRQHandler
  • EXTI4_IRQHandler
  • EXTI9_5_IRQHandler
  • EXTI15_10_IRQHandler  

22.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。  

23.物联网的架构分为几层?每一层都负责哪些功能?         分三层,物联网从架构上面可以分为感知层、网络层和应用层,

  1. 感知层: 负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、 RFID射频技术、音视频等多媒体信息,信息传输包括远近距离数据传输技术、自组织组网技术、协同信息处理技术、信息采集中间件技术等传感器网络。感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术、标准化方面、产业化方面亟待突破的部分,关键在于具备更精确、更全面的感知能力,并解决低功耗、小型化和低成本的问题。
  2. 网络层: 是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度昀高、产业化能力昀强、昀成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络。
  3. 应用层: 提供丰富的基于物联网的应用,是物联网发展的根本目标,将物联网技术与行业信息化需求相结合,实现广泛智能化应用的解决方案集,关键在于行业融合、信息资源的开发利用、低成本高质量的解决方案、信息安全的保障以及有效的商业模式的开发。  

24.简述设置系统时钟的基本流程?

  1. 打开HSE,等待就绪后,设置Flash等待操作。
  2. 设置AHB,APB1,APB2分频系数,确定他们各自和系统时钟的关系。
  3. 设置CFGR寄存器确定PLL的时钟来源和倍频系数(HSE外部8M*9倍=72MHz)。
  4. 使能PLL,将系统时钟源切换到PLL.  

25.如果是两个优先级相同的任务怎么运行?

        使获得信号量任务的优先级在使用共享资源期间暂时提升到所有任务最高优先级的高一个级别上,以使该任务不被其他任务所打断,从而能尽快地使用完共享资源并释放信号量,然后在释放信号量之后,再恢复该任务原来的优先级别。

26.Cortex-M3 的存储空间可以分为哪几个部分,每一部分的地址范围是怎样的?         程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内,Cortex-M3最大支持4GB的存储空间,但在实际的不同STM32不一样;

  1. 在0xE0000000到0xFFFFFFFF的512MB的地址存储空间是用于NVIC、MPU及调试组件等使用;
  2. 在0xA0000000到0xDFFFFFFF的1GB的地址存储空间是用于片外外设扩展;
  3. 在0x60000000到0x9FFFFFFF的1GB的地址存储空间是用于扩展片外存储器;
  4. 在0x40000000到0x5FFFFFFF的512MB的地址存储空间是用于片上外设;
  5. 在0x20000000到0x3FFFFFFF的512MB的地址存储空间是片上SRAM;STM32F103VET处理器64kB,起始地址是0x20000000到0x20010000。
  6. 在0x00000000到0x1FFFFFFF的512MB的地址存储空间是代码区;STM32F103VET处理器512kB,起始地址是0x80000000到0x1FFFFFFF。  

27.基于 CMSIS 标准的软件架构分为那几层?其中的 CMSIS 层一般由哪几部分组成?         基于CMSIS标准的软件架构主要分为以下四层:用户应用层,操作系统层,CMSIS层以,硬件寄存器层。         其中CMSIS层起着承上启下的作用,一方面该层对硬件寄存器层进行了统一的实现,屏蔽了不同厂商对Cortex-M系列微处理器核内外设寄存器的不同定义,另一方面又向上层的操作系统和应用层提供接口,

28.DAC有两个寄存器,一个是DHR(Data HoldingRegister)数据保持寄存器,一个DOR(Data Output Register)数据输出寄存器。真正起作用的是DOR寄存器,该寄存器把值给数模转换发生单元输出以VREF+为参考电压的电压值。如果是硬件触发转换,系统将在1个ABP时钟周期后把值给DOR,如果是软件触发转换,时间为3个APB时钟周期。然后,均等待Tsetting时间(Typical为3us,Max为4us)后真正输出电压值。

29.下载程序:

  • 一种为ICP(在线编程),适用于JTAG或SWD协议下的烧写程序。
  • 另一种成为IAP(在应用编程),适用于很多接口(USB,串口,CAN)下载到存储器中,IAP允许在程序运行时重新烧写FLASH。

30.内部上下拉电阻的设置:

        如果外部的按键另一头接地,那么需要设置成上拉电阻。(理由是当没有按下按键时,由于上拉,输入为高电平;按下时,由于外部接地,输入为低电平。)同理,如果外部的按键另一头接高电平,那么需要设置成下拉电阻。

31.串口中断TXE和TC的区别:

        其实很明显,一个是发送寄存器空标志,一个是发送完成标志。因为串口在发送的时候首先需要把发送寄存器中的数据移位到移位寄存器(影子寄存器)后再串行发送出去。所以当发送寄存器DR空时说明现在可能正在往外面发送数据,数据可能还没有发送完。但是发送完成不一样,他是在移位寄存器将本次数据全部移位完成后设置的标志位(也就是发送完了停止位)。这么看来:TXE允许程序有更充裕的时间填写TDR寄存器,保证发送的数据流不间断。TC可以让程序知道发送结束的确切时间,有利于程序控制外部数据流的时序。

32.定时器中断溢出更新时间:Tout=((arr+1)*(psc+1))/Tclk,ARR为自动装载寄存(1~65535)、PSC为分频系数,TCLK为输入时钟频率(Mhz)。

33.PWM1和PWM2模式的区别仅在于相位的180度。前者高电平时,后者低电平。

34.定时器输入捕捉有一个滤波器,顾名思义滤波器起到的就是滤波的作用,在捕捉外部信号时,信号可能不稳定,此时需要滤波:当检测到有外部输入时,需要再连续采样N次如果确定为高电平/低电平,则触发响应中断(如果开启了的话)。

35.常用的汉字内码系统有GB2313、GB13000、GBK、BIG5(繁体)。其中GB2313只有几千个汉字,而GBK则有2万多汉字。

标签: 陶瓷电阻rx

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台