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中断
