STM32双通道频率测量与异常检测实现详解

1. 项目概述

作为一名参加过多次蓝桥杯电子设计竞赛的嵌入式工程师,我想分享一下第15届省赛的完整解决方案。这个项目基于STM32微控制器,实现了双通道频率测量与异常检测功能,包含频率超限和频率突变两种异常状态的识别与统计。

在工业控制、仪器仪表等领域,频率测量与监控是非常基础但重要的功能。这个项目虽然是为比赛设计的,但其核心算法和实现思路完全可以应用于实际的嵌入式产品开发中。下面我将从硬件设计、软件架构到具体实现,详细解析这个项目的每个技术细节。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. 硬件设计与原理图解析

2.1 核心硬件组成

项目使用的硬件平台基于STM32微控制器,主要包含以下关键部件:

  • STM32F103系列微控制器(具体型号根据比赛指定)
  • 双通道信号输入接口(PA0和PA1)
  • 4个功能按键(PB0-PB2和PA0)
  • 8个LED指示灯(PC8-PC15)
  • LCD显示屏(通过FSMC接口连接)

2.2 关键电路设计要点

信号输入部分采用了简单的RC滤波电路,可以有效滤除高频噪声。按键电路设计了硬件消抖,配合软件消抖算法实现稳定检测。LED驱动部分使用了锁存器(74HC573)来扩展IO口,这是嵌入式系统中常见的做法。

提示:在实际硬件设计中,信号输入部分的保护电路非常重要。虽然比赛板子已经提供了基本保护,但在工业产品中建议增加TVS二极管和限流电阻。

3. STM32CubeMX配置详解

3.1 时钟树配置

系统时钟配置为72MHz,这是STM32F103系列的常见工作频率。定时器时钟为72MHz,通过分频后得到实际工作频率。

关键配置参数:

  • HCLK = 72MHz
  • PCLK1 = 36MHz
  • PCLK2 = 72MHz
  • SYSCLK来源 = PLL

3.2 GPIO配置

  • PA0:通道A信号输入,配置为浮空输入
  • PA1:通道B信号输入,配置为浮空输入
  • PB0-PB2:按键输入,配置为上拉输入
  • PC8-PC15:LED控制,配置为推挽输出
  • PD2:锁存器控制,配置为推挽输出

3.3 定时器配置

项目使用了三个定时器:

  • TIM2:通道A频率测量,输入捕获模式
  • TIM3:通道B频率测量,输入捕获模式
  • TIM4:系统定时,10ms中断

内容推荐

已经到底了哦
已经到底了哦