《嵌入式IO接口与编程》复习题
一、选择题
1、 按照ATPCS规则,返回值为int型的子程序或函数,其返回值通过( )
返回。 A、r1
B、r0
C、r14
D、r8
2、 若寄存器r2的值为0x1,执行完指令mov r2,r2,lsl#4后,r2的值为(B)。
A、0x2
B、0x10
C、0x8
D、0x4
3、 在收到主机发出的44H命令后,模块DS18B20所检测温度值的长度为( )。
A、2字节 B、3字节
C、4字节 D、不一定
4、 DS18B20使用前必须要确认器件是否存在,也就是完成复位和应答的过程中
(如图一),在这两个阶段总线DQ对应的引脚工作模式为( )。 A、都为输出
B、先输入再输出
C、先输出再输入
D、都为输入
5、 以下关于IIC总线起始信号和终止信号的描述,正确的是( )。
A、SCL为低电平期间,SDA由低电平向高电平变化,表示终止信号。 B、SCL为低电平期间,SDA由低电平向高电平变化,表示起始信号。 C、SCL为高电平期间,SDA由高电平向低电平变化,表示终止信号。 D、SCL为高电平期间,SDA由高电平向低电平变化,表示起始信号。 6、 ST32F439的SPI总线接口配置好后,若要发送数据,只需把数据赋值给
( )。 A、SPI_CR1
B、SPI_CR2
C、SPI_SR
D、SPI_DR
7、 SPI控制器的状态寄存器SPI_SR的bit0为1时,表示SPI接收缓冲区为空;
该位为0时表示,表示SPI接收缓冲区非空。下列循环语句中能够退出循环并保证SPI已接收完数据操作的是( )。 A、while(!(SPI1->SR| 0x1)) B、while(SPI1->SR&0x1)
B、while(!(SPI1->SR&0x1)) D、while(SPI1->SR|0x1)
8、 STM32F439中SPI控制器工作在I2S模式还是SPI模式由设置寄存器( )
来实现。 A、SPI_CR2
B、SPI_I2SCFGR
C、SPI_I2SPR
D、SPI_CR1
9、 触摸屏首次使用时需要调校,调校好的数据一般保存在( )中。
A、RAM
B、寄存器
C、EEPROM
D、堆栈
10、 nRF24L01可以工作在一对一通信模式或一对多通信模式,其中一对多工作
模式下最多允许几个发送节点( )。 A、四个 C、六个
B、五个
D、十个
11、 STM32F439的串口1初始化完成后,若要发送一个字节的数据,只需将数据
写入寄存器( )。 A、USART_SR
B、USART_DR
C、USART_CR1
D、USART_BRR
12、 在nRF24L01的Enhanced ShockBurstTM收发模式下,使用片内的先入先出
堆栈区,数据可以低速从微控制器送入,再高速(1Mbps/2Mbps)发射,这样可以尽量节能。与射频协议相关的所有高速信号处理都在片内进行,这种做法的优点不包括( C )。
A、节能 B、低的系统费用(低速微处理器也能进行高速射频发射) C、大大增加通信距离 D、数据在空中停留时间短,抗干扰性高; 13、 描述TFT LCD中像素点的数据长度有多种方法,常用的16位真彩色描述方
法为565,即RGB比例为5:6:5,对于480*320分辨率的TFT LCD来说,以565方式显示一帧图像需要的数据量大小为( )。 A、5120字节
B、76800字节
C、307200字节
D、153600字节
14、 在LCD控制器SSD1289中,入口模式指令03h的三个位共同控制了屏幕的
显示方向,其中I/D[0]和I/D[1]分别表示横向地址和纵向地址计数器的增减,AM表示地址更新方向。当I/D[1:0]=11,AM=0时,表示以下哪种显示方
式(c )。
A、 B、
C、 D、
15、 无线通信技术是实现物联网的关键,常用的无线通信技术有很多,他们各
有优缺点,其中基于( C )技术的硬件功耗最大。
A、ZigBee B、BlueTooth C、WiFi D、nRF24L01
二、填空题
1、 SPI是一种高速的全双工同步的通信总线,它的接口信号包括 __ 、
__ 以及主入从出(MISO)信号和主出从入(MOSI)信
号四种。
2、 IIC总线上从设备地址有8位,若该地址的最低位为0,表示对从设备进行
操作。
3、 Flash存储芯片W25Q16,其擦除操作是以 为单位进行。
4、 I2C总线是由PHILIPS公司开发用于连接微控制器及其外围设备串行总线,它由
_ 和 两条线构成。
设置时钟空闲时的电平,
设置读取
5、 在SPI设置中,
数据和发送数据的触发时钟沿。
6、 nRF24L01芯片的IRQ信号在以下三种情况会变为低电平:Tx FIFOs 发完并
且收到ACK(使能ACK情况下)、 ________________ 和达到最大重发次数。
7、 将寄存器r1中一个字的值存储在r2所指向的内存单元中,完整的ARM汇编
指令为
_______ 。
_______ 三种
8、 DMA数据传输方向有外设到存储器、存储器到存储器和
方向。
9、 一个10位的ADC,其参考电压(满量程)为3.3v, 则它的分辨率为
_______ ____ 。
10、在STM32F439中用4个位来表示中断优先级,在使用中断前需要进行优先级
分组,将中断优先级又可以分为
三、编程题
1、 根据程序中的注释,完善SPI1接口的初始化函数SPI1_Init(相关寄存器数据手册附后,假设所有寄存器的初始值均未知,使用位运算只设置注释中要求内容所对应的位,不能影响其它位)。
void SPI1_Init(void) {
//这里只针对SPI口初始化 RCC->APB2RSTR|=1<<12; tempreg|=0<<10;
//复位SPI1
//SPI主机
//16位数据格式
//空闲模式下SCK为1 CPOL=1
//数据采样从第2个时间边沿开始,CPHA=1
//全双工模式
RCC->APB2RSTR&=~(1<<12);//停止复位SPI1
_______ 和子优先级。
u16 tempreg=0;
RCC->AHB1ENR|=3<<0; //使能PORTA/PORTB时钟 RCC->APB2ENR|=1<<12; //SPI1时钟使能
GPIO_Set(GPIOB,PIN4|PIN5,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//PB4~5复用功能输出
//PA5复
GPIO_Set(GPIOA,PIN5,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPIO_AF_Set(GPIOA,5,5); GPIO_AF_Set(GPIOB,4,5);
//PA5设置为复用功能5 //PB4设置为复用功能5
用功能输出
(1)_____ //PB5设置为复用功能5
(2)_____ //使能软件从器件管理
tempreg|=1<<8; tempreg|=1<<2; tempreg|=1<<11; tempreg|=1<<1; tempreg|=1<<0;
//对SPI1属于APB2的外设.时钟频率最大为84Mhz频率.
(3)_____ //波特率设置为Fpclk/256
//先发送LSB
tempreg|=1<<7;
(4)_____ //SPI使能
//设置CR1
SPI1->CR1=tempreg;
SPI1->I2SCFGR&=~(1<<11);//选择SPI模式
SPI1_ReadWriteByte(0xff);//启动传输,可省略
}
2、 编写程序实现W25QXX的读取数据函数W25QXX_ReadID,函数的功能及要求见下面的注释(W25QXX读取数据的时序图附后)。
/**************************************************************** 函数名:W25QXX_Read
函数功能:检查W25QXX是否存在并返回设备ID值 形参:u8* pBuffer,u32 ReadAddr,u16 NumByteToRead
形参含义:pBuffer为所读取数据的存储位置,ReadAddr为读取的地址,NumByteToRead为要读取的字节数。 返回值类型:void
需调用的底层函数:u8 SPI1_ReadWriteByte(u8 TxData),其中TxData表示要写入的字节,返回值表示读取到的字节。
****************************************************************/
四、简答题
1、 分别写出nRF24L01模块发送模式和接收模式配置的基本步骤。 答:发送模式配置函数: