完整word版STM32复习题Word格式.docx
《完整word版STM32复习题Word格式.docx》由会员分享,可在线阅读,更多相关《完整word版STM32复习题Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
12、下列看门狗,可以避免跑乱的程序正好跑到喂狗程序从而导致不复位的情况是()
A、独立看门狗B、窗口看门狗C、外部硬件看门狗
13、标准库中,当PA8被配置为外部中断线时,对应的中断向量默认为()
A、EXTI8B、EXTI9_5C、EXTI5_9
14、当PA2配置为中断线,配置中断线时,EXTI_InitStructure。
EXTI_Line=()
A、EXTI_Line2B、GPIO_PinSource2C、GPIO_Pin_2
15、带互补输出功能的定时器是()
A、高级定时器B、通用定时器C、基本定时器
16、没有捕获/比较功能的定时器是()
17、语句ADC_RegularChannelConfig(ADC1,ADC_Channel_17,2,ADC_SampleTime_55Cycles5)使用规则通道组采集的是()
A、内部温度传感器的数据B、内部参考电压的数据C、某端口的数据
18、ADC初始化时,可通过结构体ADC_InitTypeDef中ADC_ScanConvMode定义()
A、ADC使用模式B、ADC扫描模式C、ADC连续转换模式
19、ADC初始化时,可通过结构体ADC_InitTypeDef中ADC_ContinuousConvMode定义()
20、DMA初始化时结构体DMA_InitTypeDef中DMA_PeripheralInc定义的是()
A、数据传输方向B、外设增量模式C、存储器增量模式
21、若ADC使用DMA采集数据,DMA_InitTypeDef中的DMA_DIR应配置为()
A、DMA_DIR_PeripheralDSTB、DMA_DIR_PeripheralSRCC、DMA_DIR_M2M
22、IIC通信时,起始信号定义为()
IIC通信时,停止信号定义为()
A、SCL为高电平时拉低SDAB、SCL为高电平时拉高SDAC、SCL为低电平时拉高SDA
23、支持多主结构的通讯方式是()
A、485B、IICC、SPI
24、CAN通讯中,用于接收单元向具有相同ID的发送单元请求数据的帧叫()
A、数据帧B、遥控帧C、过载帧
25、CAN通讯的标准格式ID为()
CAN通讯的扩展格式ID为()
A、8位B、11位C、29位
26、CAN通讯时,设置过滤器组0工作在1个32为位过滤器、标识符屏蔽模式,CAN_F0R1=0XFFFF0000,CAN_F0R2=0XFF00FF00,则接收时最低位的ID应为()
A、0B、1C、不必关心
27、下列哪个文件是μcos与处理器有关的代码,在移植时需要修改()
A、os_cpu_c.cB、os_tmr。
cC、os_cfg.h
28、μcos调用OSStart()开始启动任务管理,在调用该函数前必须至少创建()个用户任务。
A、0B、1C、2
29、μcos在任务没有配备任务控制块或被剥夺了任务控制块时的状态叫()
A、就绪状态B、等待状态C、睡眠状态
30、μcos中,创建任务函数OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio)第一个参数为()
A、任务代码指针B、任务参数指针C、任务堆栈指针。
二、判断题
1、嵌入式系统和PC都是计算机系统,因此需要完成某项功能只需要安装相应软件.
2、STM32是ST公司生产的基于Cortex内核的32位单片机,Cortex内核知识产权属于ST公司。
3、基于STM32设计的产品,软件开发时必须使用MDK。
4、STM32产品和51系统的产品一样,采用外部晶振作为系统时钟.
5、STM32产品中设计有多个定时/计数器,采用同一时钟来驱动其工作。
6、独立看门狗IWDG的“独立”的意思是指其驱动时钟区别于其他器件,采用LSI驱动。
7、STM32的中断系统可支持多达84个中断,因此至少要有84个不同的优先级才能将其区分。
8、子优先级高的中断可以打断子优先级低的中断,实现中断嵌套。
9、因为STM32系列单片机端口可以重映射,所以某个GPIO可以复用给任意外设使用。
10、当STM32某GPIO配置为输出模式时,可以通过输入数据寄存器读取端口状态。
11、AHB总线是高性能总线,主要用于系统高性能、高时钟速率模块间通信。
12、一般说STM32定时器有多少个,并不包括SYSTICK,所以SYSTICK不是定时器。
13、STM32的定时器是16位的,SYSTICK定时器也是16位的。
14、在设计单片机键盘电路时,只有独立键盘和矩阵键盘两种设计方案。
15、因为GPIO_ReadInputDataBit()函数是读取端口电平状态,所以其返回值是bit。
16、端口复用配置时要使能其端口时钟和相应外设时钟,当端口重映射时还要使能辅助功能时钟AFIO,并开启重映射。
17、STM32所有的中断可以赋予完全不相同的中断优先级.
18、中断函数名是中断程序的入口地址指针,默认已定义,所以不能象函数名一样定义具有较强的随意性。
19、在STM32标准库中,获取状态标志位和中断状态标志位的底层实现其实是一样的,但我们要养成良好习惯区分使用。
20、UART通讯时,接线时两个模块或设备间的TX和TX、RX和RX应该直接连接。
21、语句USART_SendData();
执行完毕后,数据就已经从串口发送出去了。
22、STM系列MCU的USART数据收发可以采用查询方式、中断方式和DMA方式,其中查询方式效率不高,因此在实际工程中较少使用。
23、STM32允许利用内部FLASH来存放一些数据,以实现掉电不丢失功能。
但在电磁干扰强烈的环境下要慎用,因为FLASH打开写保护后,程序区数据也有可能被电磁干扰误写。
24、STM32的所有IO口都可以作为外部中断输入。
25、每个外部中断线的触发方式可配置为上升沿触发、下降沿触发和高低电平触发.
26、双边沿触发是指先有上升沿再有下降沿才触发中断,或先有下降沿再有上升沿才触发中断的方式。
27、STM32的WWDG和IWDG一样,只要喂狗时间不大于某个设定的时间即可。
28、STM32的窗口看门狗的设计目的是为了防止出现跑乱的程序还能刷新独立看门狗喂狗操作,从而系统不复位、不能正常工作的尴尬。
29、可以使用基本定时器的输入捕获功能来测量输入脉冲信号。
30、STM32的定时器计数脉冲其能由内部时钟源提供.
31、STM32F1系列MCU的ADC最高转换速率为1M,可以通过双ADC快速交替模式来实现采样速度翻倍。
32、I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定。
33、IIC是异步通讯方式。
34、μcos的任务优先级可以一样。
三、填空题
1、嵌入式系统上的软件通常是暂时不变的;
所以经常称为。
2、STM32的4位中断优先级控制位又分成2组,从高位开始,前面2位定义的是。
3、STM32的的功能,把某些功能引脚映射到其他引脚,可以方便PCB布局,或当默认复用功能端口被占用的时候有备用端口.
4、STM32F1系列GPIO初始化时语句RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
的作用是。
5、APB1是总线。
6、部分重映射是指功能外设的部分引脚重新映射,还有一部分引脚使用引脚。
7、STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有级可编程的中断优先级。
8、当某两个中断的PreemptionPriority和SubPriority完全相同且都已触发,STM32优先响应中断。
9、串行通讯方式有SPI,IIC,UART,WIFI,BLE,ZIGBEE,WIFI,CAN等,其中既常用作芯片之间的通信也觉见于设备之间的通信.
10、STM32的USART配置时需要定义的参数包括:
起始位,数据位,奇偶校验位,停止位和。
11、语句USART_SendData()执行后,数据移入到寄存器。
12、STM32系列MCU的USART数据收发可以采用查询方式、中断方式和。
13、为提高Cortex内核的使用效率,STM32的外设一般都可以使用功能来进行数据收发操作。
14、每个外部中断线的触发方式可配置为上升沿触发、下降沿触发和触发。
15、STM32的中断线16连接到事件,可以设置为边沿触发方式,以实现对VDD电压的监测,当出现异常时处理一些紧急任务。
16、STM32的所有IO口的外部中断,在中断向量表中只分配了个中断向量。
17、标准库函数中,函数名下划线前为的英文缩写.
18、STM32的IWDG由时钟驱动,独立于主程序之外。
19、STM32的看门狗,喂狗时间既不能过早,也不能过迟。
20、可以使用STM32的高级定时器或通用定时器的功能来测量输入信号脉冲的长度,计算其周期和占空比;
使用其输出比较功能来输出波形。
21、STM32的定时器是位定时器。
22、TIM_TimeBaseInit()函数的功能是。
23、STM32的ADC是位逐次逼近型模拟数字转换器。
24、STM32最多支持3个独立ADC,但若要采集内部温度传感器数据,只能使用。
25、STM32的ADC规则通道组最多运行16个通道的数据采集,注入通道组最多支持个通道组的数据采集。
26、STM32F1xx系列ADC的时钟配置时最大为MHz.
27、I2C总线进行数据传送时,只有在时钟线上的信号为电平期间,数据线上电平状态才允许变化.
28、I2C总线空闲的时候,SDA和SCL两条信号线处于电平。
29、ISO11898标准规定,CAN显示电平表示逻辑,隐性电平表示逻辑1。
30、CAN总线的起止端一般都有一个终端电阻,来做阻抗匹配,以减少.
31、CAN通讯时,用于发送单元向接收单元传送数据的帧叫.
32、CAN通讯的用于当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
33、CAN通讯时,当多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁.连续输出电平最多的单元可继续发送.
34、μcos的多个任务靠组成了一个任务链表。
35、μcos创建任务前必须指定任务侁先级,实现任务代码,并为任务分配。
四、问答题
1、什么叫嵌入式系统?
2、解释端口复用,端口重映射,有什么作用?
3、结合STM32F1系列USART1为例,若将其TX,RX从默认PA9、PA10重映射到PB6、PB7上,简述其引脚配置步骤。
4、STM32有5个时钟源,请写出其英文缩写和英文全称。
5、试闸述抢占式优先级(PreemptionPriority)和响应优先级(SubPriority)的区别.
6、若通过定时器的PWM功能,来调整LED灯的亮度,实现亮度由暗变亮,又由亮变暗,也就是常说的呼吸灯功能,试闸述其实现步骤。
五、综合题
1、如图所示为某实际工程中STM32F0的时钟系统配置
问:
该工程采用驱动系统时钟,系统选用为SYSCLK,外设时钟频率为MHz,独立看门狗的时钟为KHz,PLL输入时钟为MHz。
2、某工程中,SPI器件接口时序图如下图所示,试使用标准库函数完成SPI主设备的初始化程序。
staticvoidSPI2_Init(void)
{
SPI_InitTypeDefSPI_InitStructure;
NVIC_InitTypeDefNVIC_InitStructure;
//PA15:
RSTPB12:
DCPB13:
CLK:
D0PB15:
data:
D1
(RCC_APB1Periph_SPI2,ENABLE);
SPI2_GpioInit();
SPI_I2S_DeInit(SPI2);
SPI_InitStructure.SPI_Direction=;
//全双工模式
SPI_InitStructure。
SPI_Mode=SPI_Mode_Master;
//作为主机使用
SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
//数据长度8
SPI_CPOL=;
SPI_InitStructure.SPI_CPHA=;
SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_16;
//480Kbps
SPI_InitStructure.SPI_FirstBit=;
SPI_CRCPolynomial=0;
SPI_Init(SPI2,&
SPI_InitStructure);
SPI_Cmd(SPI2,ENABLE);
/*ConfiguretheSPIinterruptpriority*/
NVIC_InitStructure。
NVIC_IRQChannel=SPI2_IRQn;
NVIC_IRQChannelPreemptionPriority=3;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&
NVIC_InitStructure);
/*EnabletheRxbuffernotemptyinterrupt*/
SPI_I2S_ITConfig(SPI2,SPI_I2S_IT_RXNE,ENABLE);
///*EnabletheTxbufferemptyinterrupt*/
SPI_I2S_ITConfig(SPI2,SPI_I2S_IT_TXE,DISABLE);
SPI_I2S_ITConfig(SPI2,SPI_I2S_IT_OVR,DISABLE);
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_TXE);
SPI_I2S_ClearFlag(SPI2,SPI_I2S_FLAG_RXNE);
SPI_I2S_ClearITPendingBit(SPI2,SPI_I2S_IT_TXE);
SPI_I2S_ClearITPendingBit(SPI2,SPI_I2S_IT_RXNE);
}
3、以下程序使用HAL库,使用STM32F030单片机实现的串口通讯程序,试阅读程序,回答问题。
/*USART1initfunction*/
staticvoidMX_USART1_UART_Init(void)
huart1。
Instance=USART1;
Init。
BaudRate=9600;
huart1.Init。
WordLength=UART_WORDLENGTH_8B;
Init.StopBits=UART_STOPBITS_1;
Init.Parity=UART_PARITY_NONE;
Mode=UART_MODE_TX_RX;
huart1.Init.HwFlowCtl=UART_HWCONTROL_NONE;
OverSampling=UART_OVERSAMPLING_16;
OneBitSampling=UART_ONE_BIT_SAMPLE_DISABLE;
huart1.AdvancedInit.AdvFeatureInit=UART_ADVFEATURE_NO_INIT;
if(HAL_UART_Init(&huart1)!
=HAL_OK)
{
_Error_Handler(__FILE__,__LINE__);
}
}
……
__HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);
//打开空闲中断
__HAL_UART_DISABLE_IT(&
huart1,UART_IT_RXNE);
huart1,UART_IT_TXE);
HAL_UART_Receive_DMA(&huart1,Uart1Data。
uart1Rxbuf,Uart_DataRxLength);
//打开空闲中断,初始化DMA接收
该初始化程序指定的波特率、数据位、校验位和停止位分别是。
该程序使用什么方式接收数据?
打开空闲中断的目的是什么?
4、以下程序使用的单片机(STM32F205RG,SYSCLK配置为120MHz)定时器2(APB1为60MHz)的初始化程序,试阅读程序,回答问题.
staticvoidTIM2_Config(u32HZ,floatRatio)//PWM
{
uint32_tARR;
TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
TIM_OCInitTypeDefTIM_OCInitStructure;
ARR=(60000000/HZ—1);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_TIM2);
//
TIM_TimeBaseStructure.TIM_Period=ARR;
//between0x0000and0xFFFF
TIM_TimeBaseStructure。
TIM_Prescaler=0;
//
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_CounterMode=TIM_CounterMode_Up;
TIM_RepetitionCounter=0x00;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Disable;
TIM_OCInitStructure。
TIM_Pulse=(uint32_t)(ARR*Ratio);
//
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OCNPolarity=TIM_OCNPolarity_Low;
TIM_OCIdleState=TIM_OCIdleState_Set;
TIM_OCNIdleState=TIM_OCNIdleState_Reset;
TIM_OC4Init(TIM2,&TIM_OCInitStructure);
TIM_OC4PreloadConfig(TIM2,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM2,ENABLE);
TIM_ClearFlag(TIM2,TIM_FLAG_Update);
TIM_ClearFlag(TIM2,TIM_FLAG_CC4);
TIM_Cmd(TIM2,ENABLE);
TIM_CtrlPWMOutputs(TIM2,ENABLE);
1)该程序配置TIM2利用其捕获比较功能产生信号。
2)该初始化程序两个参数用于设置,在引用的时候,第一个参数应该不小于,第二个参数应该在0~1之间。
3)生成的信号从端口输出.
4)TIM2的计数模式为向上计数、向下计数还是中央对齐?
5、以下程序是STM32F205单片机的独立看门狗初始化程序,阅读程序,回答问题。
staticvoidIWDG_Init(void)
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
IWDG_SetPrescaler(IWDG_Prescaler_256);
IWDG_SetReload(2500);
IWDG_ReloadCounter();
IWDG_Enable();
1)F2系列的LSI是32KHz,所以必