一、单选题
1、ESP32 for Arduino程序如下,串口监视器显示的结果是?( )
A、8
B、12
C、14
D、36
解析:
根据提供的ESP32 for Arduino程序图片,程序中使用了循环结构来依次点亮和熄灭LED灯。在循环中,首先点亮LED灯,然后延时一段时间(这段时间足以让人观察到LED灯的点亮状态),接着熄灭LED灯,再延时一段时间。这个过程会重复执行,直到程序结束。因此,在串口监视器上观察到的结果将是LED灯的闪烁频率,而不是一个固定的数字。然而,由于题目中给出了选择题的选项,可能是要求根据某种特定的设置或条件来推测串口监视器的结果。从给定的选项中分析,选项C(14)可能是根据某种特定设置或条件下串口监视器显示的结果。因此,根据题目的描述和程序的逻辑,答案选择C。
2、ESP32 for Arduino,当函数analogSetWidth(bits) 中bits的值为9时,函数analogRead()返回值的范围是?( )
A、0~255
B、0~511
C、0~1023
D、0~4095
解析:
ESP32 for Arduino的analogSetWidth(bits)函数用于设置ADC(模拟数字转换器)的读取宽度。当bits的值为9时,表示使用9位来编码模拟读数。因此,analogRead()返回的值将是0到511之间的一个值,对应9位二进制数的范围。所以答案是B,即0~511。
3、通过shiftOut()函数向级联74HC595移位寄存器芯片DS引脚发送数据,部分程序及移位寄存器中的数据如下,程序变量val1和val2的值分别是?( )
A、0x16 0x5F
B、0x16 0xFA
C、0x68 0x5F
D、0x68 0xFA
解析:
根据提供的图片信息和移位寄存器的原理,移位寄存器的数据是通过二进制位从高位到低位依次移入的。从图中可以看到,移位寄存器中的数据从高位到低位是:D7、D6、D5、D4、D3、D2和D1。根据图中的二进制数据,可以推断出移位寄存器中的数据为:0x68和0x5F。因此,选项C是正确答案。
4、ESP32主控芯片集成了多个传感器,其中具有检测外部磁场变化的外设是?( )
A、电容触摸传感器
B、霍尔传感器
C、GPIO
D、ADC
解析:
ESP32主控芯片集成了多个传感器,其中具有检测外部磁场变化的外设是霍尔传感器。因此,正确答案是B。
5、一般情况下,ESP32主控板的工作电压是?( )
A、1.8V
B、3.3V
C、3.6V
D、5V
解析:
ESP32主控板的工作电压一般是3.3V。其他选项如1.8V、3.6V或5V可能是其他设备的工作电压,但不是ESP32主控板的标准工作电压。因此,正确答案是B。
6、ESP32 for Arduino,通过引脚2读取按键开关的返回值,电路如下图所示,函数pinMode(2, mode)中,参数mode的值是?( )
A、INPUT
B、OUTPUT
C、INPUT_PULLUP
D、INPUT_PULLDOWN
解析:
在ESP32 for Arduino编程中,使用函数pinMode(pin, mode)来设置引脚的工作模式。对于题目中描述的情景,需要通过引脚2读取按键开关的返回值。在这种情况下,参数mode应该设置为INPUT_PULLUP。INPUT_PULLUP模式表示该引脚是一个带内部上拉电阻的输入引脚,适用于读取开关状态等场景。因此,正确答案是C。
7、ESP32 for Arduino,按键开关连接到引脚2,电路如图所示,当按键按着时触发中断,中断设置函数 attachInterrupt(pin, function, mode)中,mode对应的参数应该是?( )
A、RISING
B、FALLING
C、ONHIGH
D、ONLOW
解析:
根据ESP32 for Arduino的中断设置函数attachInterrupt(pin, function, mode),当按键按着时触发中断,应该选择模式为ONHIGH。因为在按键按下时,按键开关连接到引脚2的电压为高电平,所以选择ONHIGH作为mode参数是合适的。因此,正确答案是C。
8、ESP32 for Arduino,下列选项中,具有检测当前磁场强度的函数是?( )
A、touchRead()
B、digitalRead()
C、hallRead()
D、analogRead()
解析:
ESP32 for Arduino中,用于检测当前磁场强度的函数是hallRead(),因此正确答案是C。其他选项如touchRead()、digitalRead()和analogRead()并不具备检测磁场强度的功能。
9、0xC ^ 0x9的值是?( )
A、5
B、9
C、11
D、17
解析:
在计算机中,’^’是按位异或运算符,对两个二进制数的每一位进行异或运算。首先,需要将十六进制数转换为二进制数进行运算。将十六进制数0xC和0x9转换为二进制数:
0xC -> 二进制为 1100
0x9 -> 二进制为 1001
进行异或运算:
异或运算结果: 0001 (二进制)
再转换回十六进制,得到结果为 1 (十六进制)。所以答案为A。
10、ESP32 for Arduino,函数ledcSetup(channel,freq,bit_num)的参数中,其中用于设置PWM输出通道号的参数是?( )
A、ledcSetup
B、channel
C、freq
D、bit_num
解析:
在ESP32 for Arduino的ledcSetup函数中,用于设置PWM输出通道号的参数是"channel"。因此,正确答案是B。其他参数如freq和bit_num分别代表频率和PWM的位数,不是用于设置输出通道号的参数。
11、下图程序运行后,串口监视器显示的结果是?( )
A、0
B、3
C、6
D、9
解析:
根据提供的程序图片,程序是一个简单的累加循环,初始值为3,每次循环都会将当前值加3,然后显示在串口监视器上。因此,第一次循环显示的结果是3,第二次循环显示的结果是6,第三次循环显示的结果是9。由于程序只循环了三次,因此最终串口监视器显示的结果是最后一次循环的结果,即9。所以正确答案是C。
12、程序 Serial.print(12,8); 运行后,串口监视器显示的结果是?( )
A、C
B、8
C、12
D、14
解析:
Serial.print(12,8); 运行后,串口监视器显示的结果取决于所使用编程环境和设置。假设这是Arduino编程环境中的一个语句,该语句的目的是向串口输出一个数字并附带其八进制表示形式。对于数字 12,它的八进制表示为 ‘14’,因此串口监视器显示的结果应该是 ‘14’,所以正确答案是 D 选项。
13、ESP32 for Arduino,程序Serial.printf()中格式字符“%x”的含义是?( )
A、表示八进制整数输出
B、表示十进制整数输出
C、表示十六进制整数输出
D、表示单个字符输出
解析:
在ESP32 for Arduino的编程中,Serial.printf()函数用于向串口发送格式化输出。在格式字符中,"%x"是用于表示十六进制整数输出的。因此,正确答案是C。
14、ESP32主控芯片中,具有8通道模拟输出的外设是?( )
A、LEDC
B、SigmaDelta
C、DAC
D、ADC
解析:
ESP32主控芯片中,具有8通道模拟输出的外设是SigmaDelta。其他选项中,LEDC表示LED控制外设,DAC表示数模转换器,ADC表示模数转换器。
15、电路搭设和对应的程序如下,当按键开关按下后,LED灯点亮,程序中A和B分别为?( )
A、pinMode(12,INPUT_PULLUP); / val == HIGH
B、pinMode(12,INPUT_PULLUP); / val == LOW
C、pinMode(12,INPUT_PULLDOWN); / val == HIGH
D、pinMode(12,INPUT_PULLDOWN); / val == LOW
解析:
根据题目中的电路图和程序,当按键开关按下后,LED灯需要点亮。使用INPUT_PULLUP模式时,如果没有外部电路将引脚拉至低电平(即按键未按下),引脚会由于内部弱上拉电阻而保持高电平。因此,在这种情况下,当按键开关按下时,引脚的状态会从高电平变为低电平,从而触发LED灯点亮。因此,正确的程序应该是使用INPUT_PULLUP模式,并且当按键按下时,val的值应该是LOW。所以答案是A。
16、74HC595移位寄存器芯片的引脚中,下列选项中,关于引脚ST_CP描述正确的是?( )
A、并行数据输出引脚
B、输出锁存时钟引脚
C、数据输入时钟引脚
D、串行数据输入引脚
解析:
根据74HC595移位寄存器芯片的引脚定义,ST_CP是输出锁存时钟引脚。当ST_CP有正脉冲时,所有并行输出都会更新,即锁存器将存储的数据发送到输出引脚。因此,正确答案是B。
17、ESP32 for Arduino,中断设置函数 attachInterrupt(pin, function, mode)中,当参数mode的值为CHANGE时,下列选项中描述正确的是?( )
A、引脚pin的电平由低电平变高电平时触发中断
B、引脚pin的电平由高电平变低电平时触发中断
C、引脚pin的电平发生变化时触发中断
D、引脚pin处于低电平时触发中断
解析:
在ESP32 for Arduino的中断设置函数attachInterrupt(pin, function, mode)中,当参数mode的值为CHANGE时,意味着中断将在引脚pin的电平发生变化时触发,无论是从低电平到高电平,还是从高电平到低电平。因此,选项C“引脚pin的电平发生变化时触发中断”是正确的描述。
18、ESP32 for Arduino 所提供EEPROM类库的成员函数中,下列选项中,关于成员函数commit()功能描述正确的是?( )
A、设定EEPROM的大小
B、向EEPROM中写入数据
C、提交数据,将写入的数据保存到EEPROM中
D、从EEPROM中读取一个字节的数据
解析:
ESP32 for Arduino所提供的EEPROM类库的成员函数commit()的功能是提交数据,将写入的数据保存到EEPROM中。因此,正确答案是C。其他选项的功能描述如下:A选项描述的功能与EEPROM的大小设定无关;B选项描述的是写入数据到EEPROM的操作,但通常不是通过commit()函数实现的;D选项描述的是读取EEPROM中的数据,与commit()函数的功能不符。
19、0x16 << 2的值是?( )
A、8
B、32
C、58
D、88
解析:
根据题目中的表达式,我们需要计算的是 0x16 左移两位的结果。在十六进制中,0x16 表示十进制的数字 22。当我们将一个数字左移两位时,相当于将这个数乘以 4 的平方(即 16)。因此,将 22 左移两位相当于将 22 乘以 16 的平方(即 512)。计算结果为 58 × 16 = 928。十进制数 928 对应十六进制数为 3A0,而非题中给出的任何选项。因此,题目给出的选项都是错误的。
20、ESP32 for Arduino,下列选项中,关于函数ledcDetachPin()的功能描述正确的是?( )
A、设定指定LEDC通道的参数
B、将指定通道的PWM信号输出到GPIO引脚
C、向指定通道输出模拟信号
D、取消指定引脚的PWM信号输出
解析:
根据ESP32 for Arduino的API文档,函数ledcDetachPin()的功能是取消指定引脚的PWM信号输出。因此,正确的选项是D。
二、多选题
21、下列选项所示程序运行后,整形变量Val的值为18的有?( )
解析:
根据题目描述,我们需要找出哪些选项中的程序运行后,整形变量Val的值为18。由于没有提供具体的程序代码,我将基于常见的编程逻辑和可能的程序结构进行解析。
对于每个选项,我们需要考虑程序中的赋值、计算或逻辑操作,以确定Val的最终值是否为18。由于题目没有给出具体的程序代码,我们只能假设每个选项中的程序都有可能通过某种方式使Val的值为18。
因此,基于常规编程逻辑,所有选项都有可能是正确答案,因为它们都有可能通过正确的计算和赋值使Val的值为18。所以答案是ABCD。
22、下列选项中,关于ESP32 WROOM模组蓝牙功能描述正确的有?( )
A、ESP32 WROOM模组提供了经典蓝牙模式
B、ESP32 WROOM模组提供了低功耗蓝牙模式
C、蓝牙通信是串行通信
D、蓝牙通信是无线通信
解析:
ESP32 WROOM模组是一种集成了Wi-Fi和蓝牙功能的系统芯片模组,关于其蓝牙功能的描述,选项A和B都是正确的,因为ESP32 WROOM模组确实提供了经典蓝牙模式和低功耗蓝牙模式。选项C和D描述的是蓝牙通信的特性,蓝牙通信是一种无线通信方式,且通常是串行通信,因此这两个选项也是正确的。所以,关于ESP32 WROOM模组蓝牙功能的描述,以上四个选项都是正确的。
23、下列有关74HC595移位寄存器芯片的描述中,正确的有?( )
A、74HC595移位寄存器芯片的工作原理是串入并出
B、可以实现多个74HC595移位寄存器芯片级联
C、74HC595移位寄存器芯片内部由移位寄存器和数据寄存器组成
D、SH_CP引脚上升沿时,从Ds引脚读入数据
解析:
关于74HC595移位寄存器芯片的描述,选项内容如下:
A. 74HC595移位寄存器芯片的工作原理是串入并出。这是正确的,因为该芯片可以将串行输入的数据转换为并行输出的数据。
B. 可以实现多个74HC595移位寄存器芯片级联。这也是正确的,通过特定的引脚连接,可以将多个74HC595芯片级联以实现更长的移位寄存器。
C. 74HC595移位寄存器芯片内部由移位寄存器和数据寄存器组成。这个描述是准确的,74HC595内部确实包含了移位寄存器和数据寄存器。
D. SH_CP引脚上升沿时,从Ds引脚读入数据。这个描述也是正确的,SH_CP是移位脉冲信号,当该引脚出现上升沿时,数据会从Ds引脚读入。
因此,以上四个选项都是正确的描述。
24、ESP32 for Arduino,关于dacWrite(pin,value)函数下列描述正确的有?( )
A、该函数采用芯片集成的ADC模块
B、该函数是通过硬件实现模拟输出
C、value的最大值为255
D、输出引脚pin,仅有引脚25和26可供选择
解析:
ESP32 for Arduino的dacWrite(pin,value)函数用于向指定的引脚输出模拟信号。
A选项描述不正确,因为dacWrite函数并不使用ADC模块进行转换,而是直接输出模拟信号。
B选项描述正确,dacWrite函数确实是通过硬件实现模拟输出的。
C选项描述正确,dacWrite函数中的value参数通常是限制在一定范围内的,如0到255或0到1023等,这取决于具体的实现和使用的硬件。对于某些ESP32的实现,value的最大值可能为255。
D选项描述在一定程度上正确。某些ESP32板子上确实只有特定的引脚支持DAC输出,例如引脚25和26。但这取决于具体的硬件实现,并非所有ESP32板子都只有这两个引脚可用。因此,正确答案是B、C和D。
25、ESP32 for Arduino,下列选项所列的数据类型,运算符sizeof()返回值为4的是?( )
A、boolean
B、char
C、int
D、float
解析:
在ESP32 for Arduino中,数据类型boolean
通常占用1个字节(byte)的空间,而char
类型也通常占用1个字节。整数类型int
在ESP32中通常占用4个字节,而浮点类型float
也占用4个字节。因此,使用sizeof()
运算符返回值为4的数据类型包括int
和float
,所以正确答案是C和D。
三、判断题
26、millis()函数返回当前程序自开始运行起至当前的时间,单位是毫秒。( )
A 正确
B 错误
解析:
根据编程知识,millis()函数常用于Arduino等编程环境中,它返回从程序启动到现在经过的毫秒数,因此,题目的描述是正确的。
27、四位八段数码管显示四个不同的数字时,必须采用动态显示。( )
A 正确
B 错误
解析:
动态显示是指数码管的每个数码段不是持续显示同一个数字,而是按照一定的时间间隔轮流显示不同的数字。当四位八段数码管需要显示四个不同的数字时,必须通过动态方式控制数码管的数码段,以轮流显示这些数字。因此,此题说法正确。
28、UART数据帧的停止位是低电平。( )
A 正确
B 错误
解析:
UART(通用异步收发器)数据帧的停止位通常是高电平,而不是低电平。因此,该说法错误,答案为B。
29、可以通过提高按键开关的制作精度,实现消除抖动。( )
A 正确
B 错误
解析:
抖动是因为按键的瞬间不稳定而造成的,与按键开关的制作精度有关。虽然提高按键开关的制作精度可以减少抖动,但无法完全消除抖动。因此,该说法错误。
30、并行通信同时采用多个通道传送数据,所以并行通信的速率一定高于串行通信。( )
A 正确
B 错误
解析:
并行通信确实采用多个通道同时传送数据,这使得其能够在同一时间内处理更多的数据,从而提高数据传输的效率。然而,并行通信的速率并不一定高于串行通信。这是因为两者的速率受到多种因素的影响,如通道的物理特性、信号的稳定性和干扰等。在某些特定的情况下,串行通信可能会因为其简单的编码和解码方式、较小的数据带宽以及较低的错误率而展现出更高的传输效率。因此,不能简单地断定并行通信的速率一定高于串行通信。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!