STM32面试题及答案(实战导向).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

STM32面试题及答案(实战导向)

一、基础外设配置(实操类)

GPIO推挽输出和开漏输出的区别?实际用在什么场景?

答:推挽输出能主动输出高/低电平(比如VDD和GND),驱动能力强,适合直接接LED、继电器;开漏输出只能拉低电平,高电平需外接上拉电阻,适合多设备共线场景(比如I2C的SDA/SCL引脚,避免多个设备同时输出高电平冲突)。

注意:开漏输出如果不上拉,高电平状态是高阻态,没法正常用。

配置GPIO为输入模式时,为什么要设置上下拉?

答:浮空输入时引脚电平不稳定(受外界干扰),比如按键检测,没按的时候引脚悬空,可能误触发。上拉输入默认拉到高电平(按键接GND,按下去变低),下拉输入默认拉到低电平(按键接VDD,按下去变高),能避免电平漂移导致的误判。

二、时钟与中断(核心考点)

STM32上电默认时钟是多少?为什么要配置时钟树?

答:默认用HSI(高速内部时钟),一般8MHz(不同型号可能有差异,比如F1是8MHz,F4是16MHz)。配置时钟树是为了让外设工作在合适频率:比如USB必须要48MHz,SPI最高到APB2时钟(F1的APB2最高72MHz),高频时钟能提升外设速度,但功耗会增加,需要平衡性能和功耗。

中断优先级分组(NVIC_PriorityGroup)有什么用?抢占优先级和响应优先级的区别?

答:分组决定抢占优先级和响应优先级各占几位(比如分组2是2位抢占+2位响应)。抢占优先级高的中断能打断正在执行的低抢占优先级中断(中断嵌套);抢占优先级相同的话,响应优先级高的先执行,但不能嵌套。

实际例子:串口接收中断(抢占1)可以打断LED闪烁中断(抢占2),但两个串口中断(抢占相同,响应1和2)只能等前一个执行完再执行。

三、DMA与数据传输

DMA主要用在什么场景?比CPU直接传输好在哪?

答:用在大量数据自动传输的场景,比如ADC连续采集、SPI/I2C批量收发、串口接收大数据。优势是不用CPU干预,解放CPU去做其他事(比如数据处理),减少中断次数(比如串口接收100字节,DMA传完只发1次中断,CPU直接传要发100次中断)。

配置DMA传输时,要注意哪些关键参数?

答:①外设地址(比如ADC_DR、USART_DR)和内存地址;②传输方向(外设到内存、内存到外设);③数据宽度(8/16/32位,要和外设匹配,比如ADC是12位,选16位避免截断);④是否循环模式(比如ADC连续采集要开循环,单次传输关循环);⑤优先级(多个DMA通道冲突时,高优先级先传)。

四、常用通信外设(实战问题)

USART通信时,波特率误差太大导致通信失败,怎么解决?

答:首先看时钟源,比如用72MHzAPB1时钟,波特率115200时,分频系数是=39.0625,整数部分39,小数部分0.0625,误差0.16%(在允许范围);如果用8MHz时钟,分频系数是8000000/=4.34,误差12.4%(太大)。解决方法:换更合适的时钟源(比如用PLL倍频到72MHz),或调整波特率(比如用9600,8MHz时钟下误差0.16%)。

I2C总线挂死了怎么处理?

答:挂死一般是因为通信中突然断电、从机没应答,导致SDA/SCL引脚被拉低。解决方法:①软件层面:用GPIO模拟I2C,发送9个时钟脉冲(SCL拉低再拉高9次),让从机释放SDA;②硬件层面:在SDA/SCL引脚串100Ω电阻(避免短路),或加复位电路(挂死后复位从机)。

五、低功耗设计(项目必备)

STM32停止模式(StopMode)和待机模式(StandbyMode)的区别?唤醒方式有哪些?

答:停止模式:保留SRAM数据,功耗约几μA(F1系列),唤醒方式有外部中断、RTC闹钟;待机模式:清空SRAM数据(只有备份寄存器保留),功耗更低(约1μA),唤醒方式只有WKUP引脚、RTC闹钟。

实际用:需要保存数据的低功耗场景用停止模式(比如温湿度采集,唤醒后继续处理数据),不需要保存数据的用待机模式(比如远程控制,唤醒后重新初始化)。

六、调试与问题排查

下载程序时提示“无法连接目标”,可能的原因有哪些?怎么排查?

答:①硬件问题:JTAG/SWD引脚接触不良(检查接线,比如SWD的SWCLK/SWDIO/GND是否接对)、目标板没供电或供电不稳;②软件问题:KEIL中选择的芯片型号不对(比如选成F103C8T6

文档评论(0)

151****9429 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档