以下是15道全新的蓝桥杯嵌入式省赛客观题预测,覆盖硬件配置、外设应用、RTOS、低功耗等核心方向,每道题包含**选项列表**、**答案**和**解析**:
### **一、STM32G4硬件配置与寄存器**
1. **STM32G4的通用定时器(TIMx)支持哪种计数模式?**
**选项**:
A. 向上计数
B. 向下计数
C. 中心对齐计数
D. 以上全对
**答案:D**
**解析**:TIMx支持向上/向下/中心对齐模式,可通过CR1寄存器配置。
2. **以下哪个寄存器用于配置GPIO引脚的输出类型?**
**选项**:
A. MODER
B. OTYPER
C. OSPEEDR
D. PUPDR
**答案:B**
**解析**:OTYPER寄存器控制推挽/开漏输出模式(0:推挽,1:开漏)。
### **二、外设应用与协议**
3. **使用SPI协议时,主设备通过哪个信号线控制从设备使能?**
**选项**:
A. SCK
B. MOSI
C. MISO
D. NSS
**答案:D**
**解析**:NSS(片选)信号由主设备控制,低电平选中从设备。
4. **UART通信中,奇偶校验位由哪个寄存器配置?**
**选项**:
A. USART_CR1
B. USART_CR2
C. USART_CR3
D. USART_BRR
**答案:A**
**解析**:USART_CR1的PCE位使能奇偶校验,PS位选择奇校验或偶校验。
### **三、RTOS与任务管理**
5. **以下哪个函数用于创建FreeRTOS任务?**
**选项**:
A. xTaskCreate()
B. vTaskDelete()
C. vTaskDelay()
D. xQueueSend()
**答案:A**
**解析**:xTaskCreate()函数原型为`BaseType_t xTaskCreate(TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask)`。
6. **任务调度时,以下哪种情况会触发上下文切换?**
**选项**:
A. 任务主动调用vTaskDelay()
B. 更高优先级任务就绪
C. 任务执行完毕
D. 以上全对
**答案:D**
**解析**:任务阻塞、更高优先级任务抢占或任务自删除均会触发上下文切换。
### **四、低功耗与电源管理**
7. **STM32G4进入待机模式的正确操作顺序是?**
**选项**:
A. 使能PWR唤醒引脚 → 配置WFI
B. 配置WFI → 使能PWR唤醒引脚
C. 使能PWR唤醒引脚 → 配置WFE
D. 配置WFE → 使能PWR唤醒引脚
**答案:A**
**解析**:需先通过PWR_CR使能唤醒引脚(如WKUP),再通过WFI指令进入待机模式。
8. **以下哪种方式可降低STM32G4的静态功耗?**
**选项**:
A. 关闭未使用的外设时钟
B. 使用低功耗模式
C. 降低系统时钟频率
D. 优化代码执行效率
**答案:B**
**解析**:静态功耗由漏电流决定,需通过低功耗模式(如待机模式)降低。
### **五、模数转换与传感器**
9. **STM32G4的ADC转换结果存储在哪个寄存器?**
**选项**:
A. ADC_DR
B. ADC_SR
C. ADC_CR1
D. ADC_CR2
**答案:A**
**解析**:ADC_DR为数据寄存器,存储转换后的12位结果(右对齐或左对齐)。
10. **读取光敏电阻的模拟值需使用以下哪种外设?**
**选项**:
A. ADC
B. DAC
C. TIM
D. DMA
**答案:A**
**解析**:光敏电阻输出模拟电压,需通过ADC转换为数字量。
### **六、电路设计与调试**
11. **以下哪种操作会导致STM32G4进入复位状态?**
**选项**:
A. 电源电压降至1.8V以下
B. 使能独立看门狗(IWDG)
C. 触发软件复位命令
D. 以上全对
**答案:C**
**解析**:软件复位通过设置RCC_APB2RSTR的SW_RESET位实现,电压过低或看门狗超时会导致硬件复位。
12. **使用示波器测量STM32G4的PWM波形时,应连接到哪个引脚?**
**选项**:
A. PA0
B. PB6
C. PC13
D. PA8
**答案:D**
**解析**:PA8为TIM1_CH1的默认PWM输出引脚,需在GPIO复用功能中配置。
### **七、开发工具与代码优化**
13. **Keil MDK中,以下哪个选项用于设置代码生成的优化等级?**
**选项**:
A. Target → Use MicroLIB
B. C/C++ → Optimization
C. Debug → Use Simulator
D. Output → Create HEX File
**答案:B**
**解析**:在C/C++选项卡的Optimization下拉菜单中选择优化等级(如-O0无优化,-O3最高优化)。
14. **以下哪种方法可减小STM32G4的代码体积?**
**选项**:
A. 使用动态内存分配
B. 移除未使用的库函数
C. 增加全局变量
D. 使用浮点运算
**答案:B**
**解析**:通过编译器选项(如`--strip-debug`)或手动删除冗余代码可减小二进制文件体积。
### **八、综合应用题**
15. **设计一个电池供电的便携式设备,应优先考虑以下哪种设计?**
**选项**:
A. 高性能CPU
B. 低功耗模式
C. 复杂外设功能
D. 高速数据传输
**答案:B**
**解析**:电池供电设备需优先优化功耗,通过低功耗模式延长续航时间。