摘要:本文为作者对第十一届蓝桥杯嵌入式设计与开发项目省赛(第二场)——程序设计试题的解析。本文包括“题目要求”、“程序设计”、“效果展示”3个部分。供复盘使用。若发现错误之处,请不吝赐教。
链接:蓝桥杯嵌入式方向备赛记录(STM32G431)为作者备赛蓝桥杯嵌入式过程中,整理的学习总结。包括各模块使用要点、各模块程序等,基本搭建好工程框架,给出了各模块处理程序。
写在前面:本道题整体上难度不大。但有一处我琢磨了好久。待下文仔细分析。
目 录
一、题目要求
二、程序设计
(一)思路分析
前期已准备好模块程序、搭建好工程框架,下面结合本道题,实际分析工程思路:
1、涉及考点
按键、LED、ADC、定时器PWM、LCD等。
2、几条主线
(1)按键:要完成按键检测+功能处理。“按键检测”套用模块程序(非阻塞+移位消抖)即可。下面分析具体功能:B1:切换界面,程序上即为翻转界面状态标志位;B2、B3:调节占空比,改变变量值;B4:切换模式,翻转模式状态标志位即可。
结合整体,按键部分有以下几点要处理好:
非阻塞检测按键,有效的防抖处理;
B1、B4按键切换时,输出占空比与占空比参数问题,下面详细讨论。
(2)ADC:读取并计算电压值。题目要求如下:
![]()
运行模式要求 结合整体,ADC部分有以下几点要处理好:
ADC校准问题,这是所有涉及ADC的题目都要解决的。校准后,电压值可达到3.30V,否则最高只有3.25V ;
自动模式下,输出占空比,3种情况:电压为0,为3.3,以及介于0~3.3之间。这里我设定的CCR(即puse)变量为浮点型float duty_PA6,duty_PA7 ;这就涉及到浮点型变量的比