1. 蓝桥杯嵌入式省赛真题解析:PWM与ADC的核心考点
参加过蓝桥杯嵌入式比赛的同学都知道,省赛题目往往会在基础外设操作之上,考察两个核心模块的综合运用能力。第十一届省赛第二场的真题就是个典型例子——它把PWM输出控制和ADC数据采集这两个看似独立的功能模块,通过一个完整的控制系统串联起来。我在备赛时第一次看到这个题目,就意识到这是检验真正嵌入式开发能力的试金石。
这道题的精妙之处在于,它模拟了工业控制中常见的场景:通过旋钮(电位器ADC采集)控制电机转速(PWM输出),同时需要处理模式切换、状态显示等交互逻辑。题目中使用的STM32G431开发板,其PWM生成基于TIM3和TIM17定时器,ADC采集则通过PB15引脚连接电位器。实测发现,当电位器旋至两端时,ADC值会对应0V和3.3V,这正是我们构建自动控制模式的基础。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. CubeMX工程配置实战技巧
2.1 定时器PWM配置详解
在CubeMX中配置PWM时,新手常犯的错误是忽略时钟树设置。以TIM3为例,我们需要先确认APB1总线的时钟频率(默认80MHz),然后设置预分频器(PSC)和自动重装载值(ARR)。比如要生成1kHz的PWM波,可以这样计算:
c复制// 时钟源80MHz,目标频率1kHz
Prescaler = 80 - 1; // 分频后1MHz
Counter Period = 1000 - 1; // 1000个计数周期=1ms
实际配置中,我推荐启用PWM Generation CHx功能时,一定要勾选"Fast Mode"。这个选项可以减少PWM输出延迟,在控制电机时特别重要。记得在Parameter Settings中把Pulse初始值设为50,这样上电后就能看到默认占空比效果。
2.2 ADC采集的注意事项
ADC配置最容易踩坑的是采样时间设置。对于电位器这类变化缓慢的信号源,建议将Sampling Time设为181.5 Cycles(对应STM32G4系列的中等采样时间)。太短会导致读数不稳定,太长又会影响系统响应速度。以下是关键配置步骤:
- 在Analog选项卡启用ADC2_IN15(对应PB15)
- 设置Regular Conversion Mode为Continuous
- 配置DMA为Cir
