MCU单片机综合测试试题(含详细答案解析)_第1页
MCU单片机综合测试试题(含详细答案解析)_第2页
MCU单片机综合测试试题(含详细答案解析)_第3页
MCU单片机综合测试试题(含详细答案解析)_第4页
MCU单片机综合测试试题(含详细答案解析)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MCU单片机综合测试试题(含详细答案解析)适用范围:STM32/通用MCU入门进阶考核、嵌入式岗位笔试、单片机期末测试考试时长:90分钟满分:100分一、单项选择题(每题2分,共20分)1.下列关于MCU单片机的核心特点,说法正确的是()A.集成CPU、存储器、外设于单芯片,专为控制场景设计B.运算性能远超高端ARM处理器,适合复杂算法运算C.必须搭载操作系统才能正常运行D.仅支持数字信号处理,无法处理模拟信号2.STM32单片机中,系统时钟(SYSCLK)最高主频由什么决定()A.外部晶振大小B.PLL锁相环配置与芯片型号规格C.供电电压D.外设开启数量3.MCU中断优先级中,抢占优先级和子优先级的核心区别是()A.抢占优先级决定是否嵌套,子优先级决定同优先级响应顺序B.子优先级支持中断嵌套,抢占优先级不支持C.两者功能完全一致,只是命名不同D.抢占优先级仅用于定时器中断4.通用MCU的GPIO推挽输出模式,最大优势是()A.高电平、低电平均可驱动负载,驱动能力强B.仅能输出高电平,功耗更低C.可以直接采集外部模拟电压信号D.无需配置时钟即可使用5.定时器定时中断产生溢出的根本原因是()A.定时器计数器从0递增至自动重装载值,产生计数溢出B.外部晶振停止振荡C.中断优先级配置错误D.GPIO引脚电平跳变6.USART串口通信中,波特率的含义是()A.每秒传输的二进制位数B.每秒传输的字节数C.串口的最大传输距离D.串口通信的电压幅值7.下列不属于MCU掉电保存数据的存储区域是()A.FlashB.EEPROMC.SRAMD.备份寄存器8.ADC模数转换的核心作用是()A.将数字信号转为模拟信号输出B.将外部连续模拟电压信号转为离散数字数值C.放大外部微弱电压信号D.过滤电源干扰信号9.MCU工程中,开启外设时钟的主要目的是()A.降低芯片工作温度B.为外设提供工作时钟,让外设正常工作,未开启则外设失效C.提高程序运行速度D.稳定供电电压10.相比于轮询方式,中断方式的最大优势是()A.代码编写更简单B.不占用CPU资源,事件触发时才处理,实时性高C.无需配置寄存器D.不会出现程序bug二、填空题(每空1分,共20分)1.MCU的基本组成包含________、________、存储器、片内外设、I/O接口五大部分。2.STM32的GPIO常用四种输入输出模式:上拉输入、下拉输入、________、________。3.中断处理的完整流程为:中断触发→________→中断服务函数执行→________→返回主程序。4.定时器计数模式主要分为向上计数、________、________三种。5.USART串口通信的常用帧结构包含:起始位、________、________、停止位。6.MCU中SRAM的特点是________、断电数据丢失;Flash的特点是可读可擦写、________。7.ADC采集精度由________决定,采集速度由________和分频系数决定。8.STM32中断优先级分组中,分组0代表________,分组2代表________。9.嵌入式裸机编程的核心逻辑是:________处理常规任务,________处理突发紧急任务。10.防止串口数据出错的常用校验方式有奇偶校验、________、________。三、简答题(每题6分,共30分)1.简述GPIO开漏输出和推挽输出的区别,以及各自的常用应用场景。2.为什么STM32使用外设前,必须先开启对应外设时钟?不开启会出现什么问题?3.简述中断嵌套的使用规则,以及工程中为什么不建议设置过多中断嵌套。4.串口通信中,波特率不匹配会出现什么现象?如何排查串口乱码问题?5.简述MCU裸机程序中,轮询方式和中断方式的优缺点对比。四、编程实操题(每题10分,共20分)说明:基于STM32标准库,编写核心代码,无需完整工程,关键逻辑即可1.编写代码实现:PA0引脚推挽输出,循环翻转电平,实现LED闪烁(延时函数自行调用)。2.编写代码实现:开启TIM2定时中断,定时1ms触发一次中断。五、工程故障分析题(10分)现象:某STM32项目中,串口可以正常发送数据,但无法接收任何数据,硬件接线正常、波特率配置无误。请分析可能的软件原因,并给出对应的解决办法。完整答案及详细解析一、单项选择题答案及解析1.A解析:MCU是微控制器,核心是单芯片集成控制单元、存储、外设,主打控制场景;运算能力弱于高端处理器,无需操作系统,可搭配ADC处理模拟信号。2.B解析:芯片最大主频由硬件规格和PLL锁相环倍频配置决定,晶振仅为基础时钟源,供电、外设数量不决定最大主频。3.A解析:抢占优先级高的中断可以打断低优先级中断,实现嵌套;子优先级仅用于多个同抢占优先级中断同时触发时,确定响应先后,不支持嵌套。4.A解析:推挽输出可主动输出高、低电平,驱动电流大,可直接驱动LED、继电器等负载;开漏输出仅能拉低电平。5.A解析:向上计数模式下,计数器从0累加,达到自动重装载值后溢出,触发定时中断,是定时器中断的核心原理。6.A解析:波特率定义为每秒传输的二进制比特数,1字节=8比特,二者不能混淆。7.C解析:SRAM是静态随机存储器,断电数据完全丢失;Flash、EEPROM、备份寄存器均可掉电保存数据。8.B解析:ADC是模数转换器,核心功能是将连续变化的模拟电压转换为单片机可识别的数字量。9.B解析:STM32所有外设默认时钟关闭,目的是降低功耗;未开启时钟的外设,寄存器无法读写,功能完全失效。10.B解析:轮询需要CPU持续检测状态,占用大量资源;中断为事件驱动,空闲时CPU执行主程序,事件触发后响应,实时性、效率更高。二、填空题答案1.中央处理器(CPU)、时钟电路2.推挽输出、开漏输出3.中断响应、中断标志位清零4.向下计数、中央对齐计数5.数据位、校验位6.读写速度快、断电数据不丢失7.分辨率、ADC时钟8.无抢占优先级,只有子优先级、2位抢占优先级,2位子优先级9.主循环(while(1))、中断服务函数10.和校验、CRC校验三、简答题详细答案1.开漏输出与推挽输出区别及应用场景区别:①推挽输出内部有上、下两个MOS管,可主动输出高、低电平,驱动能力强;②开漏输出仅下拉MOS管,高电平需要外部上拉电阻,无法主动输出高电平。应用场景:推挽输出用于普通IO驱动,如LED、蜂鸣器、普通数字信号输出;开漏输出用于I2C、单总线等需要线与功能的通信接口,以及多设备共用总线的场景。2.外设时钟开启的原因及未开启的问题STM32为低功耗设计,所有片上外设默认关闭时钟,外设的寄存器、工作电路都需要时钟驱动才能正常工作。未开启时钟的后果:外设寄存器无法读写,配置参数无效,外设功能完全不生效,不会报错,但对应功能无法实现(如GPIO无电平输出、串口无法通信)。3.中断嵌套规则及过多嵌套的弊端规则:仅高抢占优先级中断可以嵌套打断低抢占优先级中断;同抢占优先级中断无法嵌套,只能排队等待。弊端:过多中断嵌套会导致程序执行逻辑混乱,堆栈溢出风险大幅提升,低优先级任务长期得不到执行,出现任务卡顿、数据丢失,同时增加程序调试难度。4.波特率不匹配的现象及乱码排查方法现象:串口接收数据全部为乱码、数据错位、部分数据丢失,无法正常解析字符串或数值。排查方法:①核对设备双方波特率、数据位、停止位、校验位参数完全一致;②检查系统时钟配置,确认时钟分频无误(时钟错误会导致实际波特率偏差);③排查硬件干扰、地线虚接问题。5.轮询与中断方式优缺点对比轮询方式:优点是逻辑简单、调试方便、无堆栈风险;缺点是持续占用CPU资源,程序效率低,实时性差。中断方式:优点是CPU资源利用率高,事件响应实时性强;缺点是代码逻辑复杂,不当使用容易出现嵌套紊乱、数据溢出、临界资源冲突问题。四、编程实操题参考答案(STM32标准库)1.PA0推挽输出闪烁LED核心代码PlainText

//1.开启GPIOA时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

//2.配置PA0推挽输出

GPIO_InitTypeDefGPIO_InitStruct;

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStruct);

//主循环翻转电平

while(1)

{

GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)!GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0));

delay_ms(500);//500ms延时

}

2.TIM21ms定时中断核心配置代码PlainText

//时钟初始化

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

//TIM2基础配置72M主频分频72重装载值999定时1ms

TIM_TimeBaseInitTypeDefTIM_InitStruct;

TIM_InitStruct.TIM_Period=999;//自动重装载值

TIM_InitStruct.TIM_Prescaler=71;//分频系数

TIM_InitStruct.TIM_ClockDivision=TIM_CKD_DIV1;

TIM_InitStruct.TIM_CounterMode=TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM2,&TIM_InitStruct);

//开启中断

TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);

//NVIC中断优先级配置

NVIC_InitTypeDefNVIC_InitStruct;

NVIC_InitStruct.NVIC_IRQChannel=TIM2_IRQn;

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;

NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;

NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;

NVIC_Init(&NVIC_InitStruct);

//使能定时器

TIM_Cmd(TIM2,ENABLE);

//中断服务函数

voidTIM2_IRQHandler(void)

{

if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET)

{

//1ms定时任务

TIM_ClearITPendingBit(TIM2,TIM_IT_Update);//清零中断标志位

}

}

五、工程故障分析题参考答案故障现象:串口发送正常,无法接收数据,硬件、波特率配置无误核心软件原因及解决方案1.未开启串口接收中断:工程中仅初始化了串口发送功能,未开启USART接收中断,CPU无法响应接收事件。解决:调用USART_ITConfig开启接收中断,同时配置NVIC接收中断优先级。2.未开启串口接收使能:部分固件需要手动开启接收功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论