stm32嵌入式试题 下载本文

4.GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)的作用是什么?返回值是什么?

读取端口GPIOx的引脚GPIO_Pin的电平。当外部电平是高电平时,函数返回1;外部电平是低电平时,函数返回0.

第7章 EXTI按键中断实验

1.EXTI 是什么?在使用中的具体流程是什么?

EXTI (External interrupt) 指外部中断,通过GPIO检测输入脉冲,引起中断事件,打断原来的代码执行流程,进入到中断服务函数中进行处理,处理完后,再返回到中断之前的代码中执行。

2.介绍1下STM32的每个中断向量的关于优先级的2个属性的具体含义。

STM32的每个中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。

抢占属性:是指打断其它中断的属性,即因为具有这个属性,会出现嵌套中断(在执行中断服务函数A的过程中被中断B打断,执行完中断服务函数B再继续执行中断服务函数A),抢占属性由NVIC_IRQChannelPreemptionPriority的参数配置。

响应属性:在抢占属性相同的情况下,当两个中断向量的抢占优先级相同时,如果两个中断同时到达,则先处理响应优先级高的中断,响应属性由NVIC_IRQChannelSubPriority的参数配置。

3.假设STM32配置了三个中断向量,其属性如下。那么STM32在响应中断时,中断A能否打断中断C的中断服务函数?中断B能否打断中断C?如果中断B和中断C中断同时到达,响应哪个中断? 中断向量 A B C 抢占优先级 响应优先级 0 1 1 0 0 1 答:若内核正在执行C的中断服务函数,则它能被抢占优先级更高的中断A打断,而由于B和C的抢占优先级相同,所以C不能被B打断。但如果B和C中断是同时到达的,内核就会首先响应响应优先级别更高的B中断。

4.EXTI中断根据外部信号的波形的特点,可以配置为哪3种触发类型? EXTI中断可以配置为上升沿触发,下降沿触发或双边沿触发。

5.每次中断触发后,都会产生标志位,所以在进入中断时可检查相应的中断标志位,而退出中断时,必须清除中断标志,否则系统会持续进入中断。实现这2个功能的函数是什么? 分别通过调用库函数EXTI_GetITStatus() 和EXTI_ClearITPendingBit() 来实现。(无s) USART_GetFlagStatus(USART1,USART_FLAG_TC) TIM__GetITStatus(TIM,TIM__IT_Update)

TIM__ ClearITPendingBit(TIM,TIM__IT_Update)

第8章串口通讯

1.波特率的含义和速度单位是什么?

波特率是一个衡量通信速度的参数。它表示每秒传送的bit的个数(单位为bps)。例如300波特表示每秒钟发送300个bit。

2.下面是对UART接口初始化的代码,分析其中的代码的作用。 void USART1_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; }

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); (1) USART_InitStructure.USART_BaudRate = 115200; (2) USART_InitStructure.USART_WordLength = USART_WordLength_8b; (3) USART_InitStructure.USART_StopBits = USART_StopBits_1; (4) USART_InitStructure.USART_Parity = USART_Parity_No ; (5) USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; (6) USART_Init(USART1, &USART_InitStructure); (7) USART_Cmd(USART1, ENABLE); (8)

(1) 使能UART1接口的时钟。 (2) 设置波特率是115200bps。

(3) 设置UART1在传输时的字长是8bit (4) 设置停止位为1位 (5) 设置不适用奇偶校验位

(6) 配置串口的模式为双线全双工通讯,把Rx和Tx模式都开启。 (7) 调用库函数USART_Init()向寄存器写入配置参数 (8) 调用USART_Cmd() 使能USART1外设

3.串口通信时发送数据时,使用的函数是什么?while( USART_GetFlagStatus(USART1,USART_FLAG_TC)的含义是什么?

使用的函数USART_SendData()进行单个字节数据的发送。使用while( USART_GetFlagStatus(USART1,USART_FLAG_TC)

!= SET) 语句不停地检查串口发送是否完成的标志位TC,一直检测到标志为完成,才进入一下步的操作。

第14章I2C接口

1. I2C接口使用几条总线线路,各是什么?

I2C接口使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线(SCL)。 2. I2C接口具有三种传输模式是哪些?速率可以达到多少?

I2C有3种传输模式,分别是:标准模式传输速率为100kbit/s ,快速模式为400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多I2C设备尚不支持高速模式。

3. I2C接口每个器件到总线的设备进行访问时,靠什么机制来进行不同设备之间的访问?

I2C器件都有一个独立的地址,可以利用这个地址进行不同设备之间的访问。