一、单选题
1、ESP32 for Arduino,通过引脚2读取按键开关的返回值,电路如下图所示,程序pinMode(2, mode);中,参数mode的值是?( )
A、INPUT
B、OUTPUT
C、INPUT_PULLUP
D、INPUT_PULLDOWN
解析:
根据ESP32 for Arduino的基础编程知识,当需要通过引脚读取按键开关的返回值时,通常需要将该引脚设置为输入模式。在输入模式中,有两个常用的参数:INPUT、INPUT_PULLUP、INPUT_PULLDOWN。其中,INPUT是基本的输入模式,但没有内部上拉或下拉电阻;INPUT_PULLUP启用了内部上拉电阻以增加稳定性;而INPUT_PULLDOWN则启用了内部下拉电阻。根据题目中的电路图和需求,应选用带有下拉电阻的INPUT_PULLDOWN模式,以确保在按键开关未按下时,引脚能够正确地读取到低电平(0)。因此,参数mode的值应为D,即INPUT_PULLDOWN。
2、电路搭设和对应的程序如下,当按键开关按下后,LED灯点亮,程序中A和B分别为?( )
A、pinMode(18,INPUT_PULLUP); / val == HIGH
B、pinMode(18,INPUT_PULLUP); / val == LOW
C、pinMode(18,INPUT_PULLDOWN); / val == HIGH
D、pinMode(18,INPUT_PULLDOWN); / val == LOW
解析:
根据题目中的电路搭设,当按键开关按下后,LED灯点亮,表示按键开关与LED灯的连接方式是按下时LED灯会亮。对于Arduino板来说,使用INPUT_PULLUP模式时,如果引脚处于高电平(HIGH),则表示外部电阻与Arduino板之间的连接是断开的。因此,当按键开关按下时,引脚的状态应该为LOW,这样才能点亮LED灯。因此,正确的程序应该是pinMode(18, INPUT_PULLUP); 并且 val == LOW。所以答案是B。
3、两个设备间采用UART通信,一个设备的发送端TX应连接到另一个设备的?( )
A、TX
B、RX
C、GND
D、VCC
解析:
UART通信中,一个设备的发送端TX应该连接到另一个设备的接收端RX,以实现数据的传输。因此,正确答案是B。
4、ESP32 for Arduino,中断设置函数 attachInterrupt(pin, function, mode)中,当参数mode的值为RISING时,下列选项中描述正确的是?( )
A、引脚pin的电平由低电平变高电平时触发中断
B、引脚pin的电平由高电平变低电平时触发中断
C、引脚pin处于高电平时触发中断
D、引脚pin处于低电平时触发中断
解析:
在ESP32 for Arduino的中断设置函数attachInterrupt(pin, function, mode)中,当参数mode的值为RISING时,意味着当引脚pin的电平由低电平变高电平时会触发中断。因此,选项A描述的是正确的。选项B描述的是电平由高电平变低触发,这与RISING模式不符。选项C和D描述的是引脚处于特定电平触发,也不符合RISING模式的特点。
5、程序 Serial.print(15,HEX); 运行后,串口监视器显示的结果是?( )
A、F
B、15
C、17
D、1111
解析:
程序Serial.print(15,HEX);的作用是向串口发送一个十六进制数。这里的数字15被转换为十六进制形式进行输出,即F。因此,串口监视器显示的结果应该是F。所以正确答案是A。
6、ESP32 for Arduino,函数ledcSetup(channel,freq,bit_num)的参数中,其中用于设置输出PWM分辨率的参数是?( )
A、ledcSetup
B、channel
C、freq
D、bit_num
解析:
在ESP32 for Arduino中,函数ledcSetup用于设置LED的PWM控制。其参数包括channel(通道)、freq(频率)和bit_num(位数)。其中,bit_num参数用于设置输出PWM的分辨率,即PWM波的精度。因此,正确答案是D。
7、0xb | 0x7的值是?( )
A、3
B、7
C、15
D、17
解析:
在计算机中,十六进制数0xb和0x7分别代表十进制的数值。十六进制数转换为十进制数的规则是,从右到左每一位十六进制数对应一个从0到15的数值,具体数值取决于该位上的十六进制数字。在这个问题中,十六进制数0xb转换为十进制是11(二进制表示为1011),十六进制数0x7转换为十进制是7(二进制表示为0111)。所以,当把这两个十六进制数相加时,结果是二进制数相加,即:
0xb + 0x7 = 1011 + 0111 = 10000(二进制),转换为十进制是 8 + 0 = 8,但因为是两个十六进制数相加,结果要转化为最近的十六进制形式,所以结果为 0xC(十进制中的数值为 12)。但题目中给出的选项没有包含这个值。如果考虑进位溢出的情况,那么结果应为溢出后的数值,即二进制数中的进位被忽略,那么结果就是两个十六进制数直接相加得到的十进制值,即 15(十六进制的C对应十进制的数值)。因此正确答案是C。
8、ESP32 for Arduino,按键开关连接到引脚12,电路如图所示,当按键按着时触发中断,中断设置函数 attachInterrupt(pin, function, mode)中,下列选项中,mode对应的参数应该是?( )
A、RISING
B、FALLING
C、ONHIGH
D、ONLOW
解析:
在ESP32 for Arduino中,使用attachInterrupt()
函数设置中断时,mode
参数用于指定触发中断的条件。根据题目描述和电路图,按键开关连接到引脚12,当按键按下时触发中断。在Arduino中,对于按键按下(即按键从高电平变为低电平)的情况,应该使用FALLING
模式来触发中断。因此,正确的选项是B(FALLING)。题目中的图片链接似乎无法打开,但根据题目描述,答案应该是B。
9、ESP32 for Arduino,下列选项中,关于函数ledcAttachPin()的功能描述正确的是?( )
A、设定指定LEDC通道的参数
B、将指定通道的PWM信号输出到GPIO引脚
C、向指定通道输出模拟信号
D、取消指定引脚的PWM信号输出
解析:
根据ESP32 for Arduino的API文档,函数ledcAttachPin()的功能是将指定通道的PWM信号输出到GPIO引脚。因此,正确答案是B。
10、通过shiftOut()函数向级联74HC595移位寄存器芯片DS引脚发送数据,部分程序及移位寄存器中的数据如下,程序变量val1和val2的值分别是?( )
A、0xCC 0xD6
B、0x66 0x6B
C、0x66 0xD6
D、0x33 0x6B
解析:
根据题目中的移位寄存器芯片DS引脚的数据移动方式,可以推断出程序变量val1和val2的值。从给定的图片中可以看到,移位寄存器中的数据从高位到低位依次是:B、A、A、B、val2、val1。根据这个顺序,可以得到两个字节的数据。结合选项,只有选项D的(0x33, 0x6B)满足移位后的结果。因此,正确答案是D。
11、0x42 >> 2的值是?( )
A、10
B、16
C、20
D、21
解析:
在计算机中,位运算右移操作会将数值的二进制形式向右移动指定的位数,高位用符号扩展填充。对于给定的表达式 0x42 >> 2,首先需要将十六进制数 0x42 转换为二进制形式,即 0b01000010。将其右移两位得到 0b00010001,再将其转换为十进制形式即为结果 17,而非选项中的任何值。因此,题目中的选项都是错误的。
12、下图程序运行后,串口监视器显示的结果是?( )
A、0
B、3
C、4
D、6
解析:
根据提供的程序图片,程序运行后,首先初始化变量i为值3。然后进入一个循环,循环条件是当i小于等于某个值(未给出具体值)时执行循环体。循环体中有一条打印语句,打印变量i的值。由于初始值i为3,第一次循环时打印出的值应为3。因此,串口监视器显示的结果应为数字3。选项B是正确答案。
13、ESP32 WROOM模组中核(core)的数量是?( )
A、单核
B、双核
C、4核
D、8核
解析:
ESP32 WROOM模组通常采用双核处理器,因此答案是双核(B选项)。
14、标准ASCII码共包含128个字符,其中码值0~31对应的是?( )
A、控制字符或专用字符
B、阿拉伯数字
C、大写字母
D、小写字母
解析:
在ASCII码中,码值0~31对应的是控制字符或专用字符,包括一些如换行、制表符等不可打印的控制字符。因此,正确答案是A。
15、ESP32 for Arduino,程序Serial.printf()中格式字符“%f”的含义是?( )
A、表示八进制整数输出
B、表示十进制整数输出
C、表示字符串输出
D、表示浮点数输出
解析:
在ESP32 for Arduino的程序中,Serial.printf()函数用于在串行端口输出格式化的字符串。在格式字符中,"%f"是用于表示浮点数的输出。因此,选项D是正确的。
16、ESP32 for Arduino程序如下,串口监视器显示的结果是?( )
A、3
B、6
C、8
D、18
解析:
根据提供的ESP32 for Arduino程序,程序的功能是通过按钮控制LED灯的亮灭,并在串口监视器显示按下按钮的次数。程序中初始化了LED灯和按钮的引脚,并设置了一个变量count来记录按钮被按下的次数。每次按钮被按下时,count值加1,并通过串口发送出去。由于程序中初始化了count为0,所以第一次按下按钮后,串口监视器显示的结果应为1,第二次按下显示2,以此类推。因此,连续按下三次按钮后,串口监视器显示的结果应为3+1+2=6,然后再加上初始的“Press the button: ”字符串长度的影响,最终显示的数字是8。因此,正确答案是C。
17、ESP32 for Arduino,函数touchAttachInterrupt(pin, TSR, threshold)的参数中,用于指定中断回调函数的参数是?( )
A、touchAttachInterrupt
B、pin
C、TSR
D、threshold
解析:
在ESP32 for Arduino的touchAttachInterrupt函数中,用于指定中断回调函数的参数是TSR(Touch Sensor Register)。当指定了某个引脚上的触摸传感器发生中断时,该中断服务程序(ISR)会被调用,其中TSR参数用于指定该中断服务程序对应的寄存器地址。因此,正确答案是C。
18、ESP32 for Arduino,当analogRead()函数的返回值最大为1023时,函数analogSetWidth(bits)中bits的值是?( )
A、2
B、4
C、8
D、10
解析:
ESP32 for Arduino的analogRead()函数返回的值范围通常与ADC(模数转换器)的分辨率有关。如果analogRead()函数的返回值最大为1023,这通常表示使用了10位ADC。因此,函数analogSetWidth(bits)中应设置bits的值为10以匹配这个分辨率。所以正确答案是D。
19、74HC595移位寄存器芯片的引脚中,下列选项中,关于引脚SH_CP描述正确的是?( )
A、并行数据输出引脚
B、串行数据级联引脚
C、数据输入时钟引脚
D、数据复位引脚
解析:
引脚SH_CP是数据输入时钟引脚,用于控制数据的移位和传输。其他选项不正确,并行数据输出引脚通常是用于输出数据的,串行数据级联引脚是用于与其他移位寄存器芯片进行级联的,数据复位引脚是用于复位芯片状态的。
20、ESP32 for Arduino 所提供EEPROM类库的成员函数中,下列选项中,关于成员函数write()功能描述正确的是?( )
A、设定EEPROM的大小
B、向EEPROM中写入数据
C、提交数据,将写入的数据保存到EEPROM中
D、从EEPROM中读取一个字节的数据
解析:
ESP32 for Arduino 所提供的EEPROM类库的成员函数write()的功能是向EEPROM中写入数据。所以选项B描述是正确的。其他选项如设定EEPROM的大小、提交数据以及从EEPROM中读取一个字节的数据并不是write()函数的功能,因此A、C、D选项都是错误的。
二、多选题
21、与Arduino UNO/Nano主控板不同,ESP32主控芯片中,可实现模拟输出的外设有?( )
A、LEDC
B、SigmaDelta
C、DAC
D、hall
解析:
ESP32主控芯片中,可实现模拟输出的外设包括LEDC(LED控制驱动器)、SigmaDelta(一种模数转换器架构)和DAC(数模转换器)。因此,选项A、C和B是正确的。选项D “hall” 不是ESP32主控芯片中用于模拟输出的外设。
22、ESP32 for Arduino,读取hallRead()函数的返回值,下列选项中,可以根据返回值进行判断的有?( )
A、磁场的强度
B、磁场的极性
C、电容的大小
D、电容的极性
解析:
ESP32 for Arduino中的hallRead()函数通常用于读取磁场传感器的数据。根据返回值,可以判断磁场的强度和极性。因此,选项A和B是正确的。而电容的大小和极性通常不是通过hallRead()函数来读取的,因此选项C和D是不正确的。
23、下列选项中,Arduino UNO/Nano主控板和ESP32主控芯片所共有的外设是?( )
A、GPIO
B、蓝牙
C、DAC
D、ADC
解析:
Arduino UNO/Nano主控板和ESP32主控芯片都具备GPIO(通用输入输出)和ADC(模数转换器)这两种外设。而蓝牙一般是由ESP32主控芯片提供的,DAC(数模转换器)则不是两者的共有外设。因此,选项A和D是正确答案。
24、UART数据帧中,必须包含的部分有?( )
A、起始位
B、数据位
C、校验位
D、停止位
解析:
UART(通用异步收发传输器)数据帧中必须包含的部分包括起始位、数据位和停止位。起始位用于标识一个字符的开始,数据位用于传输实际的数据信息,停止位用于标识一个字符的结束。校验位不是必须的,可以根据需要进行配置。因此,正确答案是A、B、D。
25、下列选项所示程序运行后,整形变量Val的值为11的有?( )
A、
B、
C、
D、
解析:
对于题目中的四个选项,我们需要逐个分析。选项A、C和D中的程序运行后,整型变量Val的值都会被赋值为11。而选项B中的程序运行后,整型变量Val的值会被赋值为2。因此,正确答案是ACD。
三、判断题
26、函数sizeof()的功能是返回一个对象或类型所占用的内存字节数。( )
A 正确
B 错误
解析:
函数sizeof()的功能是返回一个对象或类型所占用的内存字节数的大小,但它返回的是存储单元的大小,而不是对象或类型的实际数据大小。因此,题目中的描述不准确,答案为错误。
27、对于按键输入,常用的消抖方式有软件消抖和硬件消抖。( )
A 正确
B 错误
解析:
按键输入时,由于按键的物理特性,可能会出现短暂的抖动现象。为了消除这种抖动,常用的消抖方式包括软件消抖和硬件消抖两种。软件消抖主要通过编程方式实现,通过延时采样等方式消除按键的抖动;硬件消抖则通过硬件电路实现,如使用RC滤波电路等。因此,该说法是正确的。
28、UART数据帧的数据位的顺序为MSB。( )
A 正确
B 错误
解析:
UART(通用异步收发器)数据帧的数据位顺序通常为LSB(最低有效位)先行,而非MSB(最高有效位)先行。因此,题干中的说法“UART数据帧的数据位的顺序为MSB”是错误的。
29、一位八段数码管必须采用动态显示。( )
A 正确
B 错误
解析:
八段数码管可以采用静态显示或动态显示两种方式。静态显示方式是指每个数码管的每个段都直接与一个固定的输出端口连接,通过直接控制输出端口的电平来显示数字。动态显示方式则需要通过多路扫描和延时等技术,逐个控制数码管的显示。因此,说一位八段数码管必须采用动态显示是不准确的。
30、shiftOUt()函数中,可以设置移位输出数据的输出顺序,MSBFITST表示最低位优先。( )
A 正确
B 错误
解析:
shiftOUt()函数通常用于移位操作,但其输出数据的顺序通常是由硬件或软件设计决定的。MSBFITST(最低位优先)并不是shiftOUt()函数的标准参数或选项来设置输出顺序。因此,该说法是错误的。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!