STM32单片机原理及应用期末考试试题(含详细答案)_第1页
STM32单片机原理及应用期末考试试题(含详细答案)_第2页
STM32单片机原理及应用期末考试试题(含详细答案)_第3页
STM32单片机原理及应用期末考试试题(含详细答案)_第4页
STM32单片机原理及应用期末考试试题(含详细答案)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

STM32单片机原理及应用期末考试试题(含详细答案)适用专业:电子信息、自动化、机电一体化考试时长:90分钟满分:100分说明:试题贴合日常教学考点,无偏题怪题,适配期末考核、补考、自测使用一、单项选择题(每题2分,共20分)1.STM32F103系列单片机的内核是()A.Cortex-M0B.Cortex-M3C.Cortex-M4D.ARM72.STM32系统复位后,程序默认从哪个地址开始执行()A.0x00000000B.0x08000000C.0x20000000D.0x400000003.以下不属于STM32时钟源的是()A.HSI高速内部时钟B.HSE高速外部时钟C.PLL锁相环时钟D.RTC实时时钟4.GPIO端口设置为上拉输入模式时,引脚默认电平为()A.高电平B.低电平C.高阻态D.不确定5.STM32通用定时器TIM2-TIM5的计数模式不支持()A.向上计数B.向下计数C.中心对齐计数D.随机计数6.USART串口通信中,常用的波特率9600、115200,其含义是()A.每秒传输字节数B.每秒传输比特数C.每帧数据位数D.校验位速率7.STM32中断优先级分组中,分组2的含义是()A.2位抢占优先级,2位子优先级B.3位抢占优先级,1位子优先级C.1位抢占优先级,3位子优先级D.4位抢占优先级,0位子优先级8.ADC模数转换中,STM32F1的ADC分辨率为()A.8位B.10位C.12位D.16位9.以下哪种模式可以实现GPIO引脚翻转输出电平()A.推挽输出B.开漏输出C.输入模式D.模拟模式10.延时函数中,系统滴答定时器SysTick的核心作用是()A.精准定时、延时B.串口数据收发C.ADC采样计时D.PWM波形生成二、填空题(每空1分,共15分)1.STM32F103单片机的存储器主要分为________、________和片上外设寄存器区。2.GPIO的四种基本输入模式:浮空输入、________、________、模拟输入。3.STM32时钟系统中,PLL的作用是对原始时钟进行________和________,得到高频系统时钟。4.中断优先级分为________优先级和________优先级,其中________优先级高的中断可以打断低优先级中断。5.USART通信的基本帧结构包含:起始位、________、________、停止位。6.PWM波形的三个核心参数:周期、________、________。7.STM32ADC转换的两种模式:单次转换模式和________模式。三、简答题(每题5分,共25分)1.简述STM32中推挽输出和开漏输出的区别及适用场景。2.简述STM32时钟配置的基本流程。3.什么是中断?简述STM32中断响应的基本过程。4.简述USART串口通信的工作原理,同步通信和异步通信的区别。5.简述SysTick定时器的工作原理及常用应用场景。四、编程应用题(每题10分,共20分)1.基于标准库函数,编写STM32F103GPIO初始化代码,实现PA0推挽输出,初始输出低电平。2.编写简单的SysTick延时函数,实现毫秒级延时,完成LED灯1秒闪烁一次的功能(PA0控制LED)。五、综合应用题(20分)利用STM32通用定时器TIM3,实现通道1输出PWM波形,要求:频率1KHz,占空比50%,写出配置思路、核心参数计算及完整初始化代码(标准库)。参考答案及详细解析一、单项选择题答案1.B解析:STM32F103全系搭载Cortex-M3内核,M0为入门级内核,M4主打浮点运算。2.B解析:STM32程序存储在Flash,起始地址为0x08000000,复位后从此处读取程序。3.D解析:HSI、HSE、PLL均为系统主时钟源,RTC是实时时钟,仅用于计时,不驱动系统内核。4.A解析:上拉输入模式下,内部上拉电阻导通,引脚默认锁定高电平,可检测低电平触发信号。5.D解析:通用定时器仅支持向上、向下、中心对齐三种计数模式,无随机计数模式。6.B解析:波特率定义为每秒传输的二进制比特数,不是字节数,1字节=8比特。7.A解析:优先级分组2:2位抢占优先级、2位子优先级,是工程中最常用的分组方式。8.C解析:STM32F1系列ADC为12位分辨率,最大采样值4095,精度满足常规模拟量采集需求。9.A解析:推挽输出可输出高低电平,支持电平翻转;开漏只能输出低电平,高电平需外部上拉。10.A解析:SysTick是24位递减定时器,专门用于系统精准延时、定时,不负责外设通信和采样。二、填空题答案1.Flash(程序存储器)、SRAM(随机存储器)2.上拉输入、下拉输入3.倍频、分频4.抢占、子、抢占5.数据位、校验位6.占空比、相位7.连续转换三、简答题详细答案1.推挽输出和开漏输出的区别及适用场景区别:①推挽输出内部包含上拉和下拉MOS管,可主动输出高、低电平,驱动能力强;②开漏输出仅包含下拉MOS管,只能主动输出低电平,高电平需要依靠外部上拉电阻实现,无法主动输出高电平。适用场景:推挽输出用于普通LED点亮、蜂鸣器驱动、普通IO控制;开漏输出用于I2C、单总线等需要线与功能的通信电路,可实现多设备共用总线。2.STM32时钟配置基本流程第一步:开启外部时钟HSE,等待HSE稳定就绪;第二步:配置PLL时钟源为HSE,设置倍频系数;第三步:开启PLL,等待PLL锁定就绪;第四步:配置系统时钟分频(AHB、APB1、APB2分频);第五步:切换系统时钟为PLL时钟;第六步:开启外设对应时钟,完成整体时钟配置。3.中断的定义及中断响应过程中断:单片机正常运行主程序时,外部或内部外设触发紧急信号,暂停主程序,跳转至中断服务函数执行对应操作,执行完毕后返回主程序继续运行的机制。响应过程:中断触发->判断中断优先级->保护现场(保存寄存器数据)->跳转中断服务函数执行->清除中断标志位->恢复现场->返回主程序。4.USART通信原理及同步、异步通信区别工作原理:USART是通用异步收发传输器,通过串口引脚的高低电平变化,按照约定的波特率、数据位、校验位、停止位,实现设备间串行数据收发。区别:异步通信无需同步时钟线,仅两根数据线(TX/RX),靠波特率匹配数据,接线简单、通用性强;同步通信需要额外时钟信号线,时钟同步传输,数据传输速率高、稳定性好,接线复杂。5.SysTick定时器原理及应用场景工作原理:SysTick是内核自带的24位递减定时器,绑定系统时钟,定时器从预设值开始递减,计数到0时触发中断或置位标志位,可精准计时。应用场景:实现毫秒/微秒精准延时、操作系统心跳时钟(FreeRTOS/UCOS)、定时任务触发、程序精准计时。四、编程应用题答案(标准库)1.PA0推挽输出初始化代码c

voidPA0_GPIO_Init(void)

{

GPIO_InitTypeDefGPIO_InitStruct;

//开启GPIOA时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

//配置PA0参数

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);

GPIO_ResetBits(GPIOA,GPIO_Pin_0);//初始低电平

}2.SysTick延时+LED闪烁代码c

//毫秒级延时函数

voidSysTick_DelayMs(uint32_tms)

{

SysTick_Config(72000);//72M系统时钟,1ms计数一次

while(ms--)

{

while(!((SysTick->CTRL)&(1<<16)));

}

SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;

}

//LED闪烁主函数

voidLED_Flash(void)

{

PA0_GPIO_Init();

while(1)

{

GPIO_SetBits(GPIOA,GPIO_Pin_0);//点亮LED

SysTick_DelayMs(1000);//延时1秒

GPIO_ResetBits(GPIOA,GPIO_Pin_0);//熄灭LED

SysTick_DelayMs(1000);//延时1秒

}

}五、综合应用题答案1.核心参数计算系统时钟72MHz,TIM3挂载在APB1总线,APB1分频2,定时器时钟=72MHz;目标PWM频率1KHz,周期1ms;定时器计数频率=72MHz,预分频71,计数频率=1MHz(1us计数一次);自动重装载值ARR=999,计数0-999刚好1ms,满足1KHz频率;占空比50%,比较值CCR=500。2.配置思路开启TIM3、GPIOA时钟->配置PA6为复用推挽输出->配置TIM3预分频、自动重装载值->配置PWM模式1->设置比较值->使能定时器和通道输出。3.完整初始化代码c

voidTIM3_PWM_Init(void)

{

GPIO_InitTypeDefGPIO_InitStruct;

TIM_TimeBaseInitTypeDefTIM_TimeBaseStruct;

TIM_OCInitTypeDefTIM_OCInitStruct;

//开启时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

//PA6复用推挽输出

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6;

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStruct);

//定时器时基配置

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

TIM_TimeBaseStruct.TIM_Prescaler=71;//预分频

TIM_TimeBaseStruct.TIM_ClockDivision=TIM_CKD_DIV1;

TIM_TimeBaseStruct.TIM_CounterMode=TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruct);

//PWM通道配置

TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;

TIM_OCInitStruct.TIM_OutputState=TIM_OutputState

温馨提示

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

评论

0/150

提交评论