当前位置:文档之家› STM32复习题

STM32复习题

STM32复习题
STM32复习题

一、选择题

1、STM32F407VET6这款单片机型号表明该款单片机的引脚数目为( )

A、48

B、64

C、100

封装类型为( )

A、BGA

B、LQFP

C、VFQFPN

2、下列开发软件中,不能用来开发STM32的程序的是( )

A、EWARM

B、MDK

C、JDK

3、下列时钟源中不可以用来驱动系统时钟的是( )

A、HSE

B、HSI

C、LSI

4、STM32F103C8T6的SYSCLK最高为( )

A、48MHz

B、72MHz

C、168MHz

5、当两个中断的抢占式优先级和子优先级一样时,内核处理中断时,这两个中断都已

触发,响应规则为( )

A、按中断向量表的顺序

B、随机响应

C、按中断程序入口地址顺序

6、AHB是( )

A、高性能总线

B、高速外设总线

C、低速外设总线

7、在标准库中,如果某个GPIO作为数字量输入口,应配置为( )

A、GPIO_Mode_AF

B、GPIO_Mode_IN

C、GPIO_Mode_AN

。。。PA9,如果配置为USART1_TX,应配置为( )

8、GPIOx_ODR 寄存器是( )

A、GPIO输出数据寄存器

B、GPIO输入数据寄存器

C、GPIO配置寄存器

9、高速外设总线是( )

A、AHB

B、APB1

C、APB2

10、下列通讯方式中,没有同步时钟的是( )

A、UART

B、SPI

C、IIC

11、下列通讯方式中,发送和接收是同时进行的是( )

A、UART

B、SPI

C、IIC

12、下列看门狗,可以避免跑乱的程序正好跑到喂狗程序从而导致不复位的情况是(

)

A、独立看门狗

B、窗口看门狗

C、外部硬件看门狗

13、标准库中,当PA8被配置为外部中断线时,对应的中断向量默认为( )

A、EXTI8

B、EXTI9_5

C、EXTI5_9

14、当PA2配置为中断线,配置中断线时,EXTI_InitStructure.EXTI_Line= ( )

A、EXTI_Line2

B、GPIO_PinSource2

C、GPIO_Pin_2

15、带互补输出功能的定时器是( )

A、高级定时器

B、通用定时器

C、基本定时器

16、没有捕获/比较功能的定时器是( )

A、高级定时器

B、通用定时器

C、基本定时器

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定

义( )

A、ADC使用模式

B、ADC扫描模式

C、ADC连续转换模式

20、DMA初始化时结构体DMA_InitTypeDef 中DMA_PeripheralInc定义的是( )

A、数据传输方向

B、外设增量模式

C、存储器增量模式

21、若ADC使用DMA采集数据,DMA_InitTypeDef中的DMA_DIR 应配置为( )

A、DMA_DIR_PeripheralDST

B、DMA_DIR_PeripheralSRC

C、DMA_DIR_M2M

22、IIC通信时,起始信号定义为( )

IIC通信时,停止信号定义为( )

A、SCL为高电平时拉低SDA

B、SCL为高电平时拉高SDA

C、SCL为低电平时

拉高SDA

23、支持多主结构的通讯方式是( )

A、485

B、IIC

C、SPI

24、CAN通讯中,用于接收单元向具有相同ID的发送单元请求数据的帧叫( )

A、数据帧

B、遥控帧

C、过载帧

25、CAN通讯的标准格式ID为( )

CAN通讯的扩展格式ID为( )

A、8位

B、11位

C、29位

26、CAN通讯时,设置过滤器组0工作在1个32为位过滤器、标识符屏蔽模式,CA

N_F0R1=0XFFFF0000,CAN_F0R2=0XFF00FF00,则接收时最低位的ID应为( )

A、0

B、1

C、不必关心

27、下列哪个文件是μcos与处理器有关的代码,在移植时需要修改( )

A、os_cpu_c.c

B、os_tmr.c

C、os_cfg.h

28、μcos调用OSStart()开始启动任务管理,在调用该函数前必须至少创建( )个用户任

务。

A、0

B、1

C、2

29、μcos在任务没有配备任务控制块或被剥夺了任务控制块时的状态叫( )

A、就绪状态

B、等待状态

C、睡眠状态

30、μcos中,创建任务函数OSTaskCreate(void(*task)(void*pd),void *pdata,OS_STK *p

tos,INT8U prio) 第一个参数为( )

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、P

B7上,简述其引脚配置步骤。

4、STM32有5个时钟源,请写出其英文缩写和英文全称。

5、试闸述抢占式优先级(PreemptionPriority)和响应优先级(SubPriority)的区别。

6、若通过定时器的PWM功能,来调整LED灯的亮度,实现亮度由暗变亮,又由亮变暗,

也就是常说的呼吸灯功能,试闸述其实现步骤。

五、综合题

1、如图所示为某实际工程中STM32F0的时钟系统配置

问:该工程采用驱动系统时钟,系统选用为SYSCLK,外设时钟频率为 MH z,独立看门狗的时钟为 KHz,PLL输入时钟为 MHz。

2、某工程中,SPI器件接口时序图如下图所示,试使用标准库函数完成SPI主设备的

初始化程序。

static void SPI2_Init(void)

{

SPI_InitTypeDef SPI_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

//PA15:RST PB12:DC PB13:CLK:D0 PB15: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_InitStructure.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_InitStructure.SPI_CRCPolynomial = 0;

SPI_Init(SPI2,&SPI_InitStructure);

SPI_Cmd(SPI2,ENABLE);

/* Configure the SPI interrupt priority */

NVIC_InitStructure.NVIC_IRQChannel = SPI2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

/* Enable the Rx buffer not empty interrupt */

SPI_I2S_ITConfig(SPI2, SPI_I2S_IT_RXNE, ENABLE);

// /* Enable the Tx buffer empty interrupt */

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单片机实现的串口通讯程序,试阅读程序,

回答问题。/* USART1 init function */

static void MX_USART1_UART_Init(void)

{

huart1.Instance = USART1;

huart1.Init.BaudRate = 9600;

huart1.Init.WordLength = UART_WORDLENGTH_8B;

huart1.Init.StopBits = UART_STOPBITS_1;

huart1.Init.Parity = UART_PARITY_NONE;

huart1.Init.Mode = UART_MODE_TX_RX;

huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;

huart1.Init.OverSampling = UART_OVERSAMPLING_16;

huart1.Init.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);

__HAL_UART_DISABLE_IT(&huart1,UART_IT_TXE);

HAL_UART_Receive_DMA(&huart1, Uart1Data.uart1Rxbuf, Uart_DataRxLeng th);//打开空闲中断,初始化DMA接收

该初始化程序指定的波特率、数据位、校验位和停止位分别是。

该程序使用什么方式接收数据?

打开空闲中断的目的是什么?

4、以下程序使用的单片机(STM32F205RG,SYSCLK配置为120MHz)定时器2(APB1为60

MHz)的初始化程序,试阅读程序,回答问题。

static void TIM2_Config(u32 HZ,float Ratio)// PWM

{

uint32_t ARR;

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_OCInitTypeDef TIM_OCInitStructure;

ARR = (60000000 / HZ-1);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_TIM2);//

TIM_TimeBaseStructure.TIM_Period = ARR; //between 0x0000 and 0xFFFF

TIM_TimeBaseStructure.TIM_Prescaler = 0; //

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // TIM_TimeBaseStructure.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_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;// TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;

TIM_OCInitStructure.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单片机的独立看门狗初始化程序,阅读程序,回答问题。

static void IWDG_Init(void)

{

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

IWDG_SetPrescaler(IWDG_Prescaler_256); //

IWDG_SetReload(2500);

IWDG_ReloadCounter();

IWDG_Enable();

}

1)F2系列的LSI是32KHz,所以必须在秒内喂狗。

2)喂狗时应该调用的函数是:

3)IWDG_WriteAccessCmd()的功能是取消写保护,对哪两个寄存器有效?

4)如果在IWDG_Enable();前插一句IWDG_WriteAccessCmd(IWDG_WriteAccess_Di

able);还能否正常喂狗?

6、试阅读下面的程序,回答问题。

//adc1 dma2 channel0 stream0

static void ADC1_Mode_Config(void)

{

DMA_InitTypeDef DMA_InitStructure;

ADC_InitTypeDef ADC_InitStructure;

ADC_CommonInitTypeDef ADC_CommonInitStructure;

GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);

GPIO_InitStructure.GPIO_Pin= GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6; //电流电压取样 PA6是键盘

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;

GPIO_Init(GPIOA, &GPIO_InitStructure);

DMA_DeInit(DMA2_Stream0);

DMA_InitStructure.DMA_Channel = DMA_Channel_0;

DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR_ADDRES S;//ADC1_BASE+0x4C

DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&ADC_Raw_Value;

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;

DMA_InitStructure.DMA_BufferSize = 7*NPT;// 前三个是电流,中间是电压,最后一个是键盘

DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;

DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;

DMA_InitStructure.DMA_PeripheralDataSize =DMA_PeripheralDataSize_Ha lfWord ;

DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;

DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;

DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;

DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;

DMA_Init(DMA2_Stream0, &DMA_InitStructure);

DMA_ITConfig(DMA2_Stream0,DMA_IT_TC,ENABLE); //

DMA_Cmd(DMA2_Stream0, ENABLE);

//ADC1

ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//

ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;//adcclk =30M

ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disab led;

ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay _5Cycles;

ADC_CommonInit(&ADC_CommonInitStructure);

ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;

ADC_InitStructure.ADC_ScanConvMode = ENABLE; //只用了一个通道

ADC_InitStructure.ADC_ContinuousConvMode =DISABLE;

ADC_InitStructure.ADC_ExternalTrigConvEdge =ADC_ExternalTrigConvEdg e_None;//使用TIM2中断软件触发

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

ADC_InitStructure.ADC_NbrOfConversion = 7; //

ADC_Init(ADC1, &ADC_InitStructure);

ADC_RegularChannelConfig(ADC1, ADC_Channel_0 , 1, ADC_SampleTime_15 Cycles ); //电流1

ADC_RegularChannelConfig(ADC1, ADC_Channel_1 , 2, ADC_SampleTime_15 Cycles );//电流2

ADC_RegularChannelConfig(ADC1, ADC_Channel_2 , 3, ADC_SampleTime_15 Cycles );//电流3

ADC_RegularChannelConfig(ADC1, ADC_Channel_3 , 4, ADC_SampleTime_15 Cycles );//电压1

ADC_RegularChannelConfig(ADC1, ADC_Channel_4 , 5, ADC_SampleTime_15 Cycles );//电压2

ADC_RegularChannelConfig(ADC1, ADC_Channel_5 , 6, ADC_SampleTime_15 Cycles );//电压3

ADC_RegularChannelConfig(ADC1, ADC_Channel_6 , 7, ADC_SampleTime_15 Cycles ); //键盘

//定时器软件触发是0.3125ms一次,ADCCLK 30M,12+15+5=497*7=3479Cycles /30M=0.116ms,一次采样需要0.116ms<0.3125ms,是可以的

/* Enable ADC1 DMA */

ADC_DMACmd(ADC1, ENABLE);

ADC_Cmd(ADC1, ENABLE);

/* Enable DMA request after last transfer (Single-ADC mode) */

ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);

/* Start ADC1 Software Conversion */

ADC_SoftwareStartConv(ADC1);

/* Wait until the ADC1 is ready */

while(ADC_GetFlagStatus(ADC1, ADC_FLAG_STRT) == RESET)

{

}

}

1)该初始化程序实现的功能是。

2)该程序基于STM32F2,APB2设置为60MHz,ADCCLK最大不超过30MHz,该程序设置ADCCLK为 MHz。

3) STM32F2一次ADC周期=12+采样周期+两次间隔,该程序对50Hz的电压电流进行采样,每个周期采样64点,试通过计算七个通道一次ADC所需要的时间(F2)是否符合要求。

4)参考手册推荐的ADC硬件电路如下图所示,由于ADC采集的时候需要有电流输入,因此在R AIN上会有一个压降,对于一次ADC来说,R AIN不能太大,试计算硬件电路上R AIN取值1K是否合适。

R AIN最大值计算公式

(式中K为采样周期,N为转换精度,fADC为30MHz,查手册知3.3V时C ADC为4 pF,R ADC为1.5K欧,ln2=0.693147)

(范文素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)

stm32试题及答案

STM32习题集 一、选择题 1.Cortex-M处理器采用的架构是( D ) (A)v4T (B)v5TE (C)v6 (D)v7 2.NVIC可用来表示优先权等级的位数可配置为是( D ) (A)2 (B)4 (C)6 (D)8 3.Cortex-M系列正式发布的版本是( A ) (A)Cortex-M3 (B)Cortex-M4 (C)Cortex-M6 (D)Cortex-M8 4.Cortex-M3的提供的流水线是( B ) (A)2级(B)3级(C)5级(D)8级 5.Cortex-M3的提供的单周期乘法位数是( C ) (A)8 (B)16 (C)32 (D)64 6.STM32处理器的USB接口可达(B ) (A)8Mbit/s (B)12Mbit/s (C)16Mbit/s (D)24Mbit/s 4.下面是Context-M3处理器代码执行方式的是( A ) (A)特权方式(B)普通方式(C)Handle方式(D)Thread方式5.下面是Context-M3处理器的工作模式的是( A ) (A)Thread模式(B)Thumb模式(C)Thumb-2模式(D)Debug模式6.下列是Cortex – M3 处理器可以使用的堆栈的栈是( B ) (A)线程栈(B)进程栈(C)多线程栈(D)空栈7.Context – M3处理器的寄存器r14代表( B ) (A)通用寄存器(B)链接寄存器(C)程序计数器(D)程序状态寄存器 8.Handle模式一般使用( A ) (A)Main_SP (B)Process_SP (C)Main_SP和Process_SP (D)Main_SP或Process_SP 9.Cortex – M3使用的存储器格式是( D ) (A)小端格式(B)大端格式(C)小端或大端格式(D)没有正确答案 10.Cortex – M3的存储格式中专用外设总线区域可以使用( A ) (A)小端格式(B)大端格式(C)小端或大端格式(D)没有正确答案 11.每个通用I/O端口有()个32位的配置寄存器,()个32位的数据寄存器,()个32位的置位/复位寄存器,()个16位的复位寄存器,(B )个32位的锁定寄存器(A)2,1,2,1,1 (B)2,2,1,1,1 (C)2,2,2,1,1 (D)2,2,1,2,1 12.( A )寄存器的目的就是用来允许对GPIO寄存器进行原子的读/修改操作 (A)GPIOX_BSRR和GPIOX_BRR (B)GPIOX_CRL和GPIOX_CRH (C)GPIOX_BSRR和GPIOX_LCKR (D)GPIOX_IDR和GPIOX_ODR 13.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为( A )时可以是激活的或者非激活的 (A)输入(B)输出(C)推挽(D)开漏 14.端口输入数据寄存器的地址偏移为( B ) (A)00H (B)08H(C)0CH (D)04H

STM32练习题2(关于IO,有答案)

一、填空题 1.当STM32的I/O端口配置为输入时,输出缓冲器被禁止,施密特触发输入被激活。根据输入配置(上拉,下拉或浮动)的不同,该引脚的弱上拉和下拉电阻被连接。出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输入数据缓冲器的读访问可得到I/O状态。 2.STM32的所有端口都有外部中断能力。当使用外部中断线时,相应的引脚必须配置成输入模式。 3.STM32具有单独的位设置或位清除能力。这是通过_GPIOx BSRR____和GPIOx BRR 寄存器来实现的。 4.ST公司还提供了完善的通用IO接口库函数,其位于stm32f10x_gpio.c ,对应的头文件为stm32f10x_gpio.h。 5.为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO MAPR) 来实现引脚的重新映射。 二、选择题 1.在APB2上的I/O脚的翻转速度为(A)。 A.18MHz B.50MHz C.36MHz D.72MHz 4.当输出模式位MODE[1:0]=“10”时,最大输出速度为(B)。 A.10MHz B.2MHz C.50MHz D.72MHz 三、简答题 1.简述不同复用功能的重映射。 答:为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO MAPR) 来实现引脚的重新映射。 2.简述STM32的GPIO的一些主要特点(至少5个)。 答: 1.通用IO,可以作为输入、输出等功能。 2.单独的位设置和位清除 3.外部中断唤醒线 4.复用功能/重映射 5.GPIO锁定机制 四、编程题 编写一个初始化定时器的程序。 GPIO_InitTypedef GPIO_InitStructure; GPIO_InitStructure.GPIO_pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_pp; GPIO_InitStructure.GPIO_Speed=GPIO_Seep_50Mhz; GPIO_Init(GPIOC,&GPIO_InitStructure);

stm32试题

1.Cortex-M处理器采用的架构是( D) (A)v4T (B)v5TE (C)v6 (D)v7 2.NVIC可用来表示优先权等级的位数可配置为是(D ) (A)2 (B)4 (C)6 (D)8 4.Cortex-M3的提供的流水线是( B) (A)2级(B)3级(C)5级(D)8级 5.Cortex-M3的提供的单周期乘法位数是(C ) (A)8 (B)16 (C)32 (D)64 6.STM32处理器的USB接口可达( B ) (A)8Mbit/s (B)12Mbit/s (C)16Mbit/s (D)24Mbit/s 7.Context – M3处理器的寄存器r14代表( B ) (A)通用寄存器(B)链接寄存器(C)程序计数器(D)程序状态寄存器 8.Handle模式一般使用(A ) (A)Main_SP (B)Process_SP (C)Main_SP和Process_SP (D)Main_SP或Process_SP 11.每个通用I/O端口有()个32位的配置寄存器,()个32位的数据寄存器,()个32位的置位/复位 寄存器,()个16位的复位寄存器,( B )个32位的锁定寄存器 (A)2,1,2,1,1 (B)2,2,1,1,1 (C)2,2,2,1,1 (D)2,2,1,2,1 12.(A )寄存器的目的就是用来允许对GPIO寄存器进行原子的读/修改操作 (A)GPIOX_BSRR和GPIOX_BRR (B)GPIOX_CRL和GPIOX_CRH(C)GPIOX_BSRR和GPIOX_LCKR (D)GPIOX_IDR和GPIOX_ODR 13.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为( A)时可以是激活的或者非激活的 (A)输入(B)输出(C)推挽(D)开漏 14.端口输入数据寄存器的地址偏移为( B ) (A)00H (B)08H(C)0CH (D)04H 17.每个I/O端口位可以自由的编程,尽管I/O端口寄存器必须以( B )的方式访问 (A)16位字(B)16位字节(C)32位字节(D)32位字 19.固件库中的标志状态(FlagStatus)类型被赋予以下两个值( A) (A)ENABLE或者DISABLE (B)SUCCESS或者ERROR (C)SET或者RESTE (D)YES或者NO 20.STM32F107V有( C )可屏蔽中断通道 (A)40 (B)50 (C)60 (D)70 21.STM32F107V采用( B )位来编辑中断的优先级 (A)4 (B)8 (C)16 (D)32 22.向量中断控制器最多可支持( C )个IRQ中断 (A)127 (B)128 (C)240 (D)255 23.系统控制寄存器 NVIC 和处理器内核接口紧密耦合,主要目的是( C ) (A)结构更紧凑,减小芯片的尺寸 (B)连接更可靠,减小出错的概率 (C)减小延时,高效处理最近发生的中断 (D)无所谓,没有特别的意思,远一点也没有关系 24.关于中断嵌套说法正确的是(B ) (A)只要响应优先级不一样就有可能发生中断嵌套 (B)只要抢占式优先级不一样就有可能发生中断嵌套 (C)只有抢占式优先级和响应优先级都不一才有可能发生中断嵌套 (D)以上说法都不对 25.在STM32107向量中断控制器管理下,可将中断分为(B )组

ARM原理及应用复习题(附答案)

《ARM原理及应用》复习题 填空题 1.STM32F103是_32_位单片机,内核是ARM公司的___Cortex-M3___。 2.STM32F103最高工作频率___72MHz___。片内具有多种外设,它们分别是:_GPIO_、_USART_、_I2C_、_SPI_、_ADC_、_DAC_、_TIM_、_RTC_、_IWDG_、_WWDG_。 IWDG:独立看门狗 WWDG:窗口看门狗 3.STM32103的GPIO端口具有多种配置状态,输入有3种状态,它们分别是_模拟输入_、_浮空输入__和上拉/下拉输入;输出有4种状态,它们分别是_通用推挽输出_、_通用开漏输出_、_复用推挽输出_和_复用开漏输出_。 5.当STM32I/O端口配置为输入时,输出功能被_禁止_,施密特触发器被激活__。 6.STM32的所有端口都有外部中断能力。当使用外部中断线时,相应的引脚必须配置成 输入模式。 7.STM32具有单独的位设置或位清除能力。这是通过GPIOx->BSRR_和GPIOx->BRR寄存器来实现的。 8.STM32芯片内部集成的12位位ADC是一种逐次逼近(比较)型模拟数字转换器,具有18个通道,可测量16个外部和2个内部信号源。 9.STM32的NVIC管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现时延的中断处理,并有效地处理后到中断。 10.系统计时器(SysTick)提供了1个24位二进制递减计数器,具有灵活的控制机制11.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、向下计数模式和向上下计数模式。 12.STM32系列ARM Cortex-M3芯片支持三种复位形式,分别为上电复位、按键复位和备份复位。 简答题 1.什么是嵌入式系统?嵌入式系统一般由哪几部分构成?它与通用计算机有何区别? 答: 是一种嵌入受控器件内部,为特定应用而设计的专用计算机系统,具有“嵌入性”、“专用性”和“计算机系统”3个基本要素。//它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。//嵌入式系统通常执行的是带有特定要求的预先定义的任务,强调控制能力与控制的可靠性;而通用计算机则可以通过安装各种软件执行各种不同的任务,强调高速、海量的数值计算。 2.ARM Cortex-M3有何特点? 答: 采用哈佛结构的32位处理器内核,具有高性能、实时功能、数字信号处理、低功耗与低电压操作特性,同时还保持了集成度高和易于开发的特点。 3.简述Cortex-M3系统滴答定时器的功能和作用。 答:

STM32期末考试答案解析详解

简述嵌套向量中断控制器(NVI C)的主要特性。 答:STM32的嵌套向量中断控制器(NVIC) 管理着包括Cortex-M3核异常等中断,其和ARM处理器核的接口紧密相连,可以实现低延迟的中断处理,并有效地处理晚到的中断。STM32嵌套向量中断控制器(NVIC)的主要特性如下:q 具有43 个可屏蔽中断通道(不包含16 个Cortex-M3 的中断线)。q 具有16 个可编程的优先等级。q 可实现低延迟的异常和中断处理。q 具有电源管理控制。q 系统控制寄存器的实现。 1.简述STM32的ADC系统的功能特性。 答:STM32的ADC系统的主要功能特性包括如下几个方面:ADC开关控制、ADC时钟、ADC通道选择、ADC的转换模式、中断、模拟看门狗、ADC的扫描模式、ADC的注入通道管理、间断模式、ADC 的校准模式、ADC的数据对齐、可编程的通道采样时间、外部触发转换、DMA请求、双ADC模式和温度传感器。 2.简述STM32的双ADC工作模式。 答:在有两个ADC的STM32器件中,可以使用双ADC模式。在双ADC模式里,根据ADC_CR1寄存器中DUALMOD[2:0]位所选的模式,转换的启动可以是ADC1主和ADC2从的交替触发或同时触发。双ADC工作模式主要包括如下几种:同时注入模式、同时规则模式、快速交替模式、慢速交替模式、交替触发模式和独立模式。 1.简述STM32的USART的功能特点。、 答:STM32的USART为通用同步异步收发器,其可以与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART还可以利用分数波特率发生器提供宽范围的波特率选择。STM32的USART支持同步单向通信和半双工单线通信。同时,其也支持LIN(局部互连网),智能卡协议和IrDA(红外数据)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。STM32还具备多处理器通信能力。另外,通过多缓冲器配置的DMA方式,还可以实现高速数据通信。 1.简述STM32的高级控制定时器TIM1的结构。

STM32考试习题集与答案解析

STM32考试习题及答案 一、填空题 1.当STM32的I/O端口配置为输入时,输出缓冲器被禁止,施密特触发输入被激活。根据输入配置(上拉,下拉或浮动)的不同,该引脚的弱上拉和下拉电阻被连接。出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输入数据寄存器的读访问可得到I/O状态。 2.STM32的所有端口都有外部中断能力。当使用外部中断线时,相应的引脚必须配置成输入模式。 3.STM32具有单独的位设置或位清除能力。这是通过GPIOx_BSRR 和GPIOx_BRR 寄存器来实现的。 4.ST公司还提供了完善的通用IO接口库函数,其位于stm32f10x_gpio.c ,对应的头文件为stm32f10x_gpio.h 。 5.为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR) 来实现引脚的重新映射。 二、选择题 1.在APB2上的I/O脚的翻转速度为(A )。 A.18MHz B.50MHz C.36MHz D.72MHz 4.当输出模式位MODE[1:0]=“10”时,最大输出速度为(B )。 A.10MHz B.2MHz C.50MHz D.72MHz 三、简答题 1.简述不同复用功能的重映射。 答:为了优化不同引脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。这时,复用功能不再映射到它们原始分配的引脚上。在程序上,是通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)来实现引脚的重新映射。各个复用功能的重映射可以参阅正文的介绍,由于内容比较多,正文介绍非常详细,这里省略。 2.简述STM32的GPIO的一些主要特点(至少5个)。 答:主要特点如下:

stm32嵌入式试题

第一章、为什么学习STM32 STM32是一系列以ARM Cortex-M为内核的32位嵌入式微控制器。 第二章、初识STM32库 1.什么是启动文件?启动文件的作用是什么?具体实现了哪些功能? 启动文件是任何处理器在上电复位之后最先运行的一段汇编程序。在我们编写的c语言代码运行之前,需要由汇编为c语言的运行建立一个合适的环境,接下来才能运行我们的程序main函数。所以我们也要把启动文件添加进我们的的工程中去。 ?初始化堆栈指针SP; ?初始化程序计数器指针PC; ?设置堆、栈的大小; ?设置异常向量表的入口地址; ?配置外部SRAM作为数据存储器(这个由用户配置,一般的开发板可没有外部SRAM); ?设置C库的分支入口__main(最终用来调用main函数); ?在3.5版的启动文件还调用了在system_stm32f10x.c文件中的SystemIni() 函数配置系统时钟,在旧版本的工程中要用户进入main函数自己调用SystemIni() 函数。 2.stm32f10x_it.c文件的作用是什么? stm32f10x_it.c是专门用来编写中断服务函数的,在我们修改前,这个文件已经定义了一些系统异常的接口,其它普通中断服务函数由我们自己添加。 第四章、深入分析流水灯例程 1.GPIO是什么意思?STM32芯片的GPIO引脚分成哪些组?每组的引脚的号码是什么范围?STM32芯片上,I/O引脚可以被软件设置成各种不同的功能,如输入或输出,所以被称为GPIO (General-purpose I/O)。而GPIO引脚又被分为GPIOA、GPIOB……GPIOG不同的组,每组端口分为0~15,共16个不同的引脚 2.ST库提供了GPIO输出高电平和低电平的函数,分别是什么函数? 用GPIO_SetBit s()控制输出高电平,用GPIO_ResetBit s()控制输出低电平。 3.RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);这句代码实现的功能是什么?实现开启外设GPIOC的时钟。 4.下面三句代码,分别实现什么样的功能?(1)a&=~(1<<6);第7位清零,其他位保持不变(2)a|=(1<<6);第7位置1,其他位保持不变(3)a^=(1<<6);第7位取反,其他位保持不变 第5章调试程序 1.在调试STM32程序时,进行软件仿真和硬件调试,分别使用哪些软件或工具? 用MDK软件仿真,使用JLINK进行硬件调试

stm32-PVD编程要点

下面对上面2张图和表格中的数据做一个简要的解释: 1)PVD = Programmable Votage Detector 可编程电压监测器 它的作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。在给出表格的上半部分就是可编程的监视阀值数据。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。供电下降的阀值与供电上升的PVD 阀值有一个固定的差值,这就是表中的V PVDhyst(PVD迟滞)这个参数,通过列出的PVD阀值数据可以看到这个差别。引入这个差值的目的是为了防止电压在阀值上下小幅抖动,而频繁地产生中断。 2)POR = Power On Reset 上电复位;PDR = Power Down Reset 掉电复位。 POR的功能是在VDD电压由低向高上升越过规定的阀值之前,保持芯片复位,当越过这个阀值后的一小段时间后(图中的"滞后时间"或表中的"复位迟滞"),结束复位并取复位向量,开始执行指令。这个阀值就是表中倒数第4行(min=1.8,typ=1.88,max=1.96)。 POR的功能是在VDD电压由高向低下降越过规定的阀值后,将在芯片内部产生复位,这个阀值就是表中倒数第3行(min=1.84,typ=1.92,max=2.0)。 3)可以看到POR比PDR大了0.04V,这就是表中倒数第2行,V PDRhyst(PDR迟滞)=40mV。 4)从上面的第2张图可以看到,当VDD上升越过POR阀值时,内部并不马上结束复位,而是等待一小段时间(Reset temporization),这就是表中的最后一行T RSTTEMPO,它的典型数值是2.5ms。 这个滞后时间是为了等待供电电压能够升高到最低可靠工作电压以上,我们看到POR阀值最小只有1.8V,最大也只有1.96V,都低于数据手册中给出的最低可靠工作电压2.0V,所以这个滞后时间是十分必要的,如果供电电压上升缓慢,尤其是从1.8V升到2.0V以上超过1~2.5ms,则很可能造成上电复位后MCU不能正常工作的情况。 https://www.doczj.com/doc/9215910409.html,/view/f7352fd076a20029bd642db3.html STM32内部自带PVD功能,用于对MCU供电电压VDD进行监控。通过电源控制寄存器中的PLS[2:0]位可以用来设定监控电压的阀值,通过对外部电压进行比较来监控电源。当条件触发,需要系统进入特别保护状态,执行紧急关闭任务:对系统的一些数据保存起来,同时对外设进行相应的保护操作。 操作流程: 1)、系统启动后启动PVD,并开启相应的中断。 PWR_PVDLevelConfig(PWR_PVDLevel_2V8); // 设定监控阀值 PWR_PVDCmd(ENABLE); // 使能PVD EXTI_StructInit(&EXTI_InitStructure); EXTI_InitStructure.EXTI_Line = EXTI_Line16; // PVD连接到中断线16上 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //使用中断模式 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Raising;//电压低于阀值时产生中断 EXTI_InitStructure.EXTI_LineCmd = ENABLE; // 使能中断线

STM32习题集附答案

STM32习题集附答案 一、选择题 1.Cortex-M处理器采用的架构是(D) (A)v4T(B)v5TE(C)v6(D)v72.NVIC可用来表示优先权等级的位数可配置为是(D) (A)2(B)4(C)6(D)8 3.Cortex-M系列正式发布的版本是(A) (A)Cortex-M3(B)Cortex-M4(C)Cortex-M6(D)Cortex-M8 4.Cortex-M3的提供的流水线是(B) (A)2级(B)3级(C)5级(D)8级 5.Cortex-M3的提供的单周期乘法位数是(C) (A)8(B)16(C)32(D)64 6.STM32处理器的USB接口可达(B) (A)8Mbit/s(B)12Mbit/s(C)16Mbit/s(D)24Mbit/s4.下面是Context-M3处理器代码执行方式的是(A) (A)特权方式(B)普通方式(C)Handle方式(D)Thread方式5.下面是Context-M3处理器的工作模式的是(A) (A)Thread模式(B)Thumb模式(C)Thumb-2模式(D)Debug 模式6.下列是Cortex–M3处理器可以使用的堆栈的栈是(B) (A)线程栈(B)进程栈(C)多线程栈(D)空栈7.Context–M3处理器的寄存器r14代表(B)

(A)通用寄存器(B)链接寄存器(C)程序计数器(D)程序状态寄存器 8.Handle模式一般使用(A) (A)Main_SP(B)Process_SP(C)Main_SP和Process_SP(D)Main_SP或Process_SP 9.Cortex–M3使用的存储器格式是(D) (A)小端格式(B)大端格式(C)小端或大端格式(D)没有正确答案 10.Cortex–M3的存储格式中专用外设总线区域可以使用(A) (A)小端格式(B)大端格式(C)小端或大端格式(D)没有正确答案 11.每个通用I/O端口有()个32位的配置寄存器,()个32位的数据寄存器,()个32位的置位/复位寄存器,()个16位的复位寄存器,(B)个32位的锁定寄存器(A)2,1,2,1,1(B)2,2,1,1,1(C)2,2,2,1,1(D)2,2,1,2,112.(A)寄存器的目的就是用来允许对GPIO寄存器进行原子的读/修改操作 (A)GPIOX_BSRR和GPIOX_BRR(B)GPIOX_CRL和GPIOX_CRH(C)GPIOX_BSRR和GPIOX_LCKR(D)GPIOX_IDR和GPIOX_ODR13.所有的GPIO引脚有一个内部微弱的上拉和下拉,当它们被配置为(A)时可以是激活的或者非激活的

《嵌入式技术》期末考试题及答案C(基于STM32)

《嵌入式技术》期末考试题3 一、填空题(20分) 1.如嵌入式系统的设计可以分成三个阶段:分析、和。 2.微处理器有两种总线架构,使用数据和指令使用同一接口的是,分开的指令和数据接口、取指和数据访问可以并行进行的是。 3.ARM核有两个指令集,分别是指令集、指令集。 4.嵌入式系统开发采用的交叉开发环境是由和组成的。 5.STM32单片机程序开发中常用的延时产生方法有和。 二、判断题(20分) 1、我们学习所用的电脑属于嵌入式系统。() 2、小明的手机能拍照并能保存照片其手机内部芯片利用模数转换器。() 3、STM32F1系列单片机跟AT89C52单片机一样得外接晶振。() 4、NVIC只负责优先级的分配与管理,中断的使能和禁止和它无关。() 5、Cortex-M3只可以使用小端格式访问代码。() 三、名词解释(20分) 1、NVIC 2、DAC 3、TIMER 4、DMA 四、简答题(40分) 1、目前使用的嵌入式操作系统主要有那几种(至少举3种)?

2、嵌入式开发环境主要包括哪些组件? 3、Boot Loader在嵌入式系统中主要起什么作用?完成哪些主要的工作? 4、简述嵌入式系统开发的基本流程。

《嵌入式技术》期末考试题3 参考答案 一、填空题 1、设计实现 2、冯诺依曼哈佛 3、ARM Thumb 4、宿主机目标机 5、软件延时定时器延时 二、判断题 1、? 2、? 3、? 4、? 5、? 三、名词解释 1、中断向量控制器 2、数模转换器 3、定时器 4、直接内存存取 四、简答题 1、答:1)μC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE操作系统;4)Linux操作系统;5)Symbian操作系统 2、答:嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括 (1)宿主机 (2)目标机(评估电路板) (3)基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE (4)运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境 3、答:Boot Loader是在嵌入式系统复位启动时,操作系统内核运行前,执行的

STM32测试题

STM32测试题 一年级的小Q同学立志要成为南强电子设计的牛人,于是他向老师请教,老师给了他一片STM32单片机,但是小Q初来乍到,不知道如何使用,你能帮帮小Q吗? 要求利用STM32单片机实现以下功能,以下所有功能写在一个工程中,一次性实现以下尽可能多的功能(多种功能组合): (最高难度情况下的器材:STM32单片机,STLINK烧写器,USB串口,5个LED,8个相同电阻,17条连接线) 1、利用面包板,挑选相关器材,搭建LED电路(5%)和UART(串口)接线(5%)。 要求:STM32管脚高电平时LED亮,低电平时LED暗。 提示:STM32管脚接LED,接电阻,再到GND;UART与USART是基本一样的; UART部分连2条线即可(GND相连,STM32的TX端接USB串口的RX 端);搭建出所需的电路即可得分。 2、利用STM32控制LED闪烁(三选一): 2.1、利用PB0管脚控制LED闪烁。(10%) 要求:LED大约亮0.5秒,暗0.5秒。 2.2、利用定时中断(TIM2),让PB0管脚控制LED闪烁。(20%) 要求:LED精确亮0.5秒,暗0.5秒。 提示:根据电脑上的或手机上的时钟,预估程序的对错。 2.3、利用定时中断(TIM2, TIM4), 分别让PB0和PB1管脚控制两个LED闪烁。 (30%) 要求:PB0控制的LED精确亮0.5秒,暗0.5秒;PB1控制的LED精确 亮0.7秒,暗0.7秒。 提示:根据电脑上的或手机上的时钟,预估程序的对错;要利用到计算 器计算周期,除不尽时,四舍五入。 3、利用STM32管脚控制LED(三选一): 3.1、利用PA11管脚作为输入,控制LED的亮暗。(10%) 要求:PB2接LED,PA11输入电平LED亮,PA11输入低电平LED暗。 3.2、利用PA11的外部中断,点亮LED。(20%) 要求:PB2接LED,LED初始时是暗的,PA11输入高/低电平LED亮。 提示:外部中断利用边缘触发,配置好后,管脚碰一下3V3(一般情况) 或GND,有正确的现象即可。 3.3、利用PA11和PA12的外部中断,控制LED亮暗。(30%) 要求:PB2接LED,PA11输入高/低电平LED亮,PA12输入高/低电平 LED暗。 提示:外部中断利用边缘触发,配置好后,管脚碰一下3V3(一般情况) 或GND,有正确的现象即可。

《嵌入式技术》期末考试题及答案A(基于STM32)

《嵌入式技术》期末考试题1 一、填空题(20分) 1.ARM 这个缩写包含两个意思:一是指___________;二是指______________。 2.常用的AT89C52单片机为_____位单片机,而STM32单片机为____位单片机。 3.常用的STM32F103~107系列单片机是基于_________内核,此内核采用的是___________结构。 4.STM32单片机共有8种输入输出模式,其中输入模式有____种,输出模式有_____种。 5.在编写按键检测程序时,加一个延时判断的目的是为了__________,这种方法叫________。 二、判断题(20分) 1、学习嵌入式技术不需要硬件基础,只需要会编写软件即可。() 2、STM32F103~107系列单片机的最大系统时钟频率为72MHz。() 3、STM32F103~107系列单片机的工作电压为5.0V。() 4、STM32的软件开发环境有Keil u 5、IAR等。() 5、STM32的开发模式只有基于固件库函数方式一种。() 三、名词解释(20分) 1、GPIO 2、TIMER 3、USART 4、OS 四、简答题(40分) 1、请举例说明,在你身边有哪些是单片机应用系统(至少举3例)?

2、与常用的AT89C52单片机比较,STM32单片机有哪些方面的优点? 3、STM32单片机常见的基本功能部件(外设)有哪些? 4、编写一个函数,函数描述:控制LED每隔1S闪烁一次,控制LED的引脚为PC8,只写出具体的控制函数即可,整体程序不用编写。

《嵌入式技术》期末考试题1 参考答案 一、填空题 1、ARM 公司ARM 公司设计的CPU及其架构 2、8 32 3、Cortex-M3 哈佛 2、4 4 3、延时消抖软件消抖法 二、判断题 1、? 2、? 3、? 4、? 5、? 三、名词解释 1、输入/输出接口 2、定时器 3、通用串行通信接口 4、操作系统 四、简答题 1、略 2、(1)stm32 单片机的运算速度比AT89C52单片机的快;(2)stm32 单片机能移植操作系统,这样能处理多任务;(3)stm32 单片机外围接口功能比AT89C52单片机强大。 3、(1)输入/输出接口GPIO ;(2)定时/计数器;(3)串行通信接口;(4)串行总线IIC 。 4、 void LED_Flash(void) { GPIO_SetBits(GPIOC, GPIO_Pin_8); Delay_mS(1000);

[嵌入式系统设计(基于STM32F4)][徐灵飞][习题解答] (4)

《嵌入式系统设计(基于STM32F429)》 第4章课后题参考答案 1.尝试分析一下STM32F4系列微控制器从复位到main()启动过程。 答: 复位后。 (1)从存储空间0x00000000处去除栈顶指针到MSP。 (2)从存储空间0x00000004出读取复位终端服务程序入口地址到PC。 (3)执行SystemInit函数,初始化系统时钟和外部存储器接口。 (4)执行__main函数,完成堆栈区域初始化。 (5)点转到main()函数,执行应用程序(C代码) 2.请写出复位异常向量、SVC异常向量和SysTick向量地址。 答: 复位异常向量地址:0x00000004 SVC异常向量地址:0x0000002C SysTick向量地址:0x0000003C 3.请写出启动文件中定义的SysTick、外部中断0和USART1中断的中断服务函数名。 答: SysTick中断服务函数名:SysTick_Handler 外部中断0中断服务函数名:EXTI0_IRQHandler USART1中断的中断服务函数名:USART1_IRQHandler 4.请编写中断EXTI0_IRQHandler的中断服务程序,使用C程序实现,只需要空函数。 答: void EXTI0_IRQHandler (void) {} 5.尝试说明在发生EXTI0_IRQHandler中断时,内核响应的过程。 答: (1)处理器在当前堆栈上把程序状态寄存器、程序计数寄存器、链接寄存器、R12、R3~R0八个寄存器自动依次入栈。 (2)读取向量表中的EXTI0服务程序入口地址(EXTI0_IRQHandler)。 (3)根据向量表更新程序计数寄存器的值(EXTI0服务程序入口地址->PC)。 (4)加载新程序计数寄存器处的指令(步骤(2)~步骤(4)与步骤(1)同时进行)。(开始执行中断服务程序) (5)更新链接寄存器为EXC_RETURN(EXC_RETURN表示退出异常后返回的模式及使用的堆栈)。 6.如何配置1 s的SysTick系统定时函数? 答: if (SysTick_Config(SystemCoreClock/1000000)) { /*SystemCoreClock/1000000超出计数最大值时报错,程序陷入空循环*/ while (1); } 说明:SysTick_Config函数在文件core_cm4.h中。

STM32 SPI 注意要点

STM32 SPI 注意要点 觉得SPI 很简单,所以从来没有去仔细去看就直接用了,这次在调一 个芯片的时候出现了一个比较奇怪的问题,以为是程序逻辑的问题,浪费了好 几天的时间都没有找到原因。今天乖乖查阅了一些手册,最后在《STM32 不完 全手册》里找到了线索,现在索性对SPI 做个总结。首先说最近碰到的问题。 问题一:错以为SPI 的读数据,直接读取SPIx->DR 寄存器就可以完成。这个问题我一直没注意,十分惭愧。原来SPI 的时钟只有在往DR 寄存器里面写 数据的时候才会产生,读是不会产生的(暂时没有从哪个资料中得到确认,不 过我猜就是这样)。所以要读取slave 发过来的数据,master 必须先发一个DUMMY 数据,这个数据内容不重要,目的只是为了产生一组clock 给 slave,slave 的数据就沿着这一组clock 给发了出来。master 给slave 读写数据的过程是这样的:写:master 对DR 写数据,产生clock,同时数据从MOSI 管脚移位发送到slave 的MOSI 管脚;读:master 对DR 写DUMMy,产生clock,同时DUMMy 由MOSI 发给slave(这个数据没有意义),同时读 取的数据从slave 的MISO 管脚移位发送到master 的MISO 管脚。问题二:在配置为双线全双工的时候,如上面所说,在master 写数据的时候,其实stm32 的SPI 同时也往master 的DR 寄存器里面读进数据(读写虽然都是DR,其实 是两个不同的寄存器)。对这点的忽略,就是这次问题产生的原因。我在对采 集芯片读取数据之前,需要向芯片发送一个读取数据的指令,在发送指令后, 理论来说采集芯片会自动等待发送数据过来,只要我stm32 这边发一个 DUMMy 产生一组clock,然后就可以从DR 中读取数据。但是由于在发送读取 指令的时候,其实STM32 也同时也把一个无用的数据读到DR 里面去了,这 个数据在没有被取走之前,是不会再接受新的数据的,所以在后来发送

《嵌入式技术》期末考试题及答案B(基于STM32)

《嵌入式技术》期末考试题2 一、填空题(20分) 1.如果LED阴极接地,阳极通过一个电阻接单片机PA1端口,则当单片机PA1端口输出为高电平时LED状态为_______;当输出为低电平时LED状态为 _______。 2.STM32单片机的GPIO口可以配置为__________模式和__________模式。 3.常STM32的为通用同步异步收发器,可以利用发生器提供宽范围的波特率选择。 4.STM32通用定时器TIM的16位计数器可以采用三种方式工作,分别为向上计数模式、模式和模式。 5.STM32具有单独的位设置或位清除能力。这是通过和寄存器来实现的。 二、判断题(20分) 1、Contex-M3系列处理器内核采用了哈佛结构。() 2、ADC主要完成数/模转换功能。() 3、STM32F103~107系列单片机的一般工作电压设置为3.3V。() 4、STM32单片机可以基于uCOS-II、FreeRTOS等操作系统开发。() 5、STM32单片机不支持上电复位。() 三、名词解释(20分) 1、LED 2、PC 3、MCU 4、ARM 四、简答题(40分) 1、STM32的GPIO的配置模式有那几种?

2、请举例说明,STM32定时器可以实现哪些功能(至少举3例)? 3、请举例说明,STM32的开发模式有哪些? 4、请简述什么是嵌入式系统?

《嵌入式技术》期末考试题2 参考答案 一、填空题 1、亮灭 2、输入输出 3、USART 定时器 4、向下计数向上向下计数 5、GPIOx_BRR GPIOx_BSRR 二、判断题 1、? 2、? 3、? 4、? 5、? 三、名词解释 1、发光二极管 2、泛指所有的个人计算机 3、微控制器 4、一指ARM公司,二指ARM公司设计的CPU及其架构 四、简答题 1、STM32的GPIO的配置模式有那八种: (1)输入模式4种: 模拟输入、浮空输入、下拉输入、上拉输入 (2)输出模式4种: 开漏输出、推挽输出、复用开漏输出、复用推挽输出 2、(1)实现延时功能;(2)实现波特率调整;(3)实现PWM输出。 3、(1)基于寄存器开发;(2)基于固件库开发;(3)基于操作系统 4、嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪、适用于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

STM32考试习题及答案讲解

STM32考试习题及答案 、填空题 二、选择题 三、简答题 1?简述不同复用功能的重映射。 答:为了优化不同引脚封装的外设数目, 这时,复用功能不再映射到它们原始分配的引脚上。 在程序上,是通过设置复用重映射和调 试I/O 配置寄存器(AFIO_MAPR )来实现引脚的重新映射。各个复用功能的重映射可以参阅 正文的介绍,由于内容比较多,正文介绍非常详细,这里省略。 2 .简述STM32的GPIO 的一些主要特点(至少 5个)。 答:主要特点如下: 通用I/O ,可以作为输出、输入等功能。 单独的位设置或位清除。 外部中断/唤醒线。 复用功能(AF )和重映射。 GPIO 锁定机制。 1. 当STM32的I/O 端口配置为输入时, 入 _______ 被激活。根据输入配置(上拉,下拉或浮动 电阻 被连接。出现在I/O 脚上的数据在每个 对 输入数据寄存器 的读访问可得到I/O 状态。 2. STM32的所有端口都有外部中断能力。当使用 引脚必须配置成 输入模式 _________ 。 3 . STM32具有单独的位设置或位清除能力。这是通过 GPIOx BSRR 和 GPIOx BRR ________ 寄存器来实现的。 4 . ST 公司还提供了完善的通用IO 接口库函数,其位于 stm32f10x_gpio.c ________ ,对应的头文件为 stm32f10x_gpio.h _______ 。 5?为了优化不同引脚封装的外设数目,可以把一些 复用功能 重新映射到其他 引脚上。这时,复用功能不再映射到 它们原始分配的引脚 ___________ 上。在程序上,是 通过设置 复用重映射和调试 I/O 配置寄存器(AFIO_MAPR ) _________________ 来实现引脚的重 输出缓冲器 被禁止, )的不同,该引脚的 APB2时钟被采样到输入数据寄存器, 施密特触发输 弱上拉和下拉 外部中断线 时,相应的 1.在APB2上的I/O 脚的翻转速度为 A. 18MHz C . 36MHz 4?当输出模式位 MODE[1:O]= “ 10” A. 10MHz C . 50MHz (A B . D . )。 50MHz 72MHz 时,最大输出速度为(B )。 B. 2MHz D . 72MHz 可以把一些复用功能重新映射到其他引脚上。

嵌入式部分复习题、练习题-含答案

第1章:ARM和嵌入式系统介绍 嵌入式系统的概念 ARM嵌入式处理器的版本 Cortex系列处理器的组成和特点 嵌入式操作系统 第2章:ARM体系结构 ARM、CM3处理器状态:Thumb状态和调试状态 CM3处理器工作模式:Handler模式和Thread模式 代码特权分级:特权级和非特权(用户)级 CM3内部寄存器:r0-r12,r13,r14,r15,状态寄存器xPSR 存储器映射机制:大端格式和小端格式 数据对齐方式:字对齐、半字对齐、非字对齐、非半字对齐 异常概念、CM3异常机制特点 第3章:Cortex-M3控制器及外围硬件简介 嵌入式最小系统组成 第4章:指令系统和时钟 ARM、Thumb、Thumb-2和CM3指令集的特点和关系 STM32时钟系统结构原理和初始化编程 启动代码 第5章:GPIO实验、第6章:UART实验、第9章:中断实验 第10章:RTC实验 原理和编程 第7章:模/数转换、第8章:定时器实验 原理即可,不考程序

1. 什么是嵌入式系统?嵌入式系统有哪些应用? 2. 什么是嵌入式处理器?嵌入式处理器分为哪几类? 3. 说明使用实时操作系统的必要性。 4. 简要说明ARM Cortex内核处理器分为哪几个系列?各有什么特点? 5. ARM Cortex-M3处理器有哪些优势符合嵌入式操作系统的要求? 6. 简述NVIC的初始化步骤。 7. 什么是嵌入式处理器?嵌入式处理器分为哪几类? 二、填空 1. STM32F103ZET6有个引脚, KB片内FLAM ROM, KB 片内SRAM。 2. Cortex-M3处理器支持两种特权分级:特权级和。Cortex-M3处理器支持两种工作模式,:模式和模式。 3. PSR中,标志位C是,Z是 N是,V是。 4. CM3内部寄存器中,R13的作用是,R14的作用是,R15的作用是。 5. 经典ARM7处理器有和两种状态,CM3处理器只有状态。 6. Cortex-M3的流水线分3级,分别为、、。 7. STM32F10x的管理着包括Cortex-M3核异常等中断,其和ARM 处理器核的接口紧密相连,可以实现的中断处理,并有效地处理迟来中断。 8. Cortex-M3支持的线性地址空间大小为。 9. 复位后,CM3处于模式,状态,使用堆栈,特权级别为。 10. 设STM32的分组方式设为4,则抢占优先级的最大值为。 11. ARM字数据存储格式有:和。 12. CM3处理器的程序存储器和数据存储器的编址方式为,I/O设备与存储器的编址方式为。 1. ARM处理器Cortex系列包括Cortex-A系列、和,其中主要应用于实时控制领域。 2. CM3内部寄存器中,用于保存堆栈指针的寄存器是。 3. PSR中,标志位C的作用是。 4. Cortex-M3处理器有两种状态:和调试状态。 5. 复位时,代码执行是(答特权级还是用户级)的。 6. Cortex-M3的流水线分3级,分别为、、执行。 7. 存储器系统有两种映射机制:小端存储器系统和存储器系统,STM32只能为存储器系统。 8. STM32具有单独的位设置或位清除能力,是通过和寄存器来实现的。 9. TIM6在计数器溢出/上溢时产生更新事件,只有当更新事件发生时,自动重装载寄存器和PSC预分频寄存器才会将其值传递给各自的影子寄存器,这对于产生信号非常有用。 10. 设STM32的分组方式设为6,则子优先级的最大值为。

相关主题
文本预览
相关文档 最新文档