蓝桥杯嵌入式第十四届省赛难点突破:长按按键与脉冲捕获实战

1. 赛题难点剖析:为什么长按与脉冲捕获让人头疼?

刚拿到第十四届蓝桥杯嵌入式省赛的题目时,我心里咯噔了一下。LCD、LED、按键、ADC、PWM,这些老朋友都在,但题目里明晃晃地加上了“按键长按检测”和“脉冲输入捕获”这两个新考点。说实话,比赛现场看到新东西,心跳都会快两拍。尤其是时间紧、任务重的情况下,任何一个没准备过的知识点都可能成为“拦路虎”。

我后来仔细琢磨,组委会加入这两个考点,用意其实很深。长按检测考察的是你对“时间”这个维度的处理能力。普通的按键扫描,我们只关心“按下”和“松开”这两个瞬间事件。但长按要求你持续跟踪按键状态超过2秒,这中间涉及定时器中断的配合、状态机的设计,以及如何准确区分短按和长按而不产生误判。这不再是简单的GPIO读取,而是时序逻辑软件架构的考验。

脉冲捕获,更是直接戳中了嵌入式系统的核心——精准测量。它要求你不仅能检测到引脚上的电平变化(上升沿/下降沿),还要能掐着表算出两次变化之间的精确时间,从而推导出频率和占空比。这背后是定时器输入捕获模式、中断服务程序、计数器溢出处理等一系列硬核知识的综合应用。很多同学平时做实验,PWM输出可能玩得挺熟,但反过来用定时器“捕捉”一个外部信号,可能就有点手生了。

这两个难点叠加,题目难度确实上了一个台阶。但别慌,难点就是得分点,也是拉开差距的地方。只要我们把原理吃透,把代码框架搭好,这两个功能完全可以成为你作品的亮点。接下来,我就结合自己的实战代码,掰开揉碎了给你讲清楚,怎么用STM32CubeMX和HAL库,稳稳当当地把这两块硬骨头啃下来。

2. 实战第一步:CubeMX的精准配置

工欲善其事,必先利其器。在STM32开发里,CubeMX就是我们最得力的“器”。配置对了,事半功倍;配置错了,调试到哭。针对这次比赛的需求,我们的配置必须紧扣“长按”和“捕获”这两个核心。

2.1 时钟树与基础外设配置

首先,芯片选型(这里以STM32G4系列为例)和时钟配置是根基。系统时钟我通常直接使用HSE(外部高速晶振),通过PLL倍频到最高频率(比如80MHz)。这里有个小细节,定时器的时钟源一定要搞清楚。比如TIM17这种高级定时器,它的时钟可能来自APB总线,如果APB预分频器不是1,定时器时钟还会被倍频。我的习惯是,在Clock Configuration标签页配置好后,一定要点开“Timers”选项卡,看看你用的定时器实际时钟是多少,心里有数,后面算频率和周期才不会错。

接着是GPIO。根据常见的竞赛板原理图:

  • 按键(如PB0, PB1, PB2, PA0):务必设置为 GPIO_Input 模式,并且由于板子外部通常是下拉电阻,我们在内部配置为 上拉模式(Pull-up)。这样,按键未按下时,我们读到的就是高电平;按下时,引脚被拉到地,读到低电平。
  • LED:设置为 GPIO_Output 模式,推挽输出(Push-Pull),初始电平设为高电平(因为很多板子是低电平点亮LED)。
  • PWM输出引脚(如PA1作为TIM2_CH2):这个后面在定时器里配置。
  • 脉冲输入引脚(如PA7作为TIM17_CH1):这个也留到定时器配置。
  • ADC输入引脚(如PB15作为ADC2_IN15):先配置好模拟输入模式。

2.2 定时器的三重角色配置

这是本次配置的重中之重,一个定时器可能身兼数职。

首先是TIM3,我们用它产生10ms的中断,作为整个系统的“心跳”

  • 在“Parameter Settings”里,根据你的系统时钟(比如80MHz)计算预分频器(Prescaler)和自动重装载值(Counter Period)。
  • 目标是产生10ms中断。计算公式是:定时器时钟频率 / (Prescaler + 1) / (Period + 1) = 中断频率(100Hz)。
  • 假设定时器时钟是80MHz,我们可以设置Prescaler = 7999,Period = 99。这样,(80,000,000 / 8000 / 100) = 100Hz,也就是10ms一次中断。
  • 关键一步:一定要打开 NVIC Settings 里的定时器全局中断(TIM3 global interrupt)使能。

其次是TIM2,我们用它来产生一路PWM波

  • 选择通道2(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值