摘要:本文为作者对第十三届蓝桥杯嵌入式设计与开发项目省赛(第二场)——程序设计试题的解析。本文包括“题目要求”、“程序设计”、“效果展示”3个部分。供复盘使用。若发现错误之处,请不吝赐教。
链接:蓝桥杯嵌入式方向备赛记录(STM32G431)为作者备赛蓝桥杯嵌入式过程中,整理的学习总结。包括各模块使用要点、各模块程序等,基本搭建好工程框架,给出了各模块处理程序。
写在前面:本道题在EEPROM上稍有难度,其他部分在内容和难度上和第一场差不多。
目 录
一、 题目要求
二、程序设计
(一)思路分析
前期已准备好模块程序、搭建好工程框架,下面结合本道题,实际分析工程思路:
1、涉及考点
按键、LED、EEPROM、定时器、串口、LCD等。
2、几条主线
(1)按键:要完成按键检测+功能处理。“按键检测”使用模块程序(非阻塞+移位消抖)即可。下面分析具体功能:B1:界面切换按键,程序上改变界面状态标志位即可;B2、B3:分别对应商品X、Y,在不同界面下按下按键,改变对应商品的购买数量、单价、库存,通过运算符对变量处理即可;B4:确认按键,处理好变量关系即可。
(2)LED:
主要是LD1亮5秒,LD2以0.1秒为间隔闪:LD1点亮5秒后熄灭,可以通过Systic秒计数实现;LD2以0.1秒为间隔闪烁,可以通过设置LED处理函数刷新时间为0.1秒来实现(在LED处理函数中,if语句,库存量均为0时,翻转对应引脚。该函数0.1秒刷新一次,即可实现LD2以0.1秒为间隔闪烁)。
(3)定时器:一个脚,两个状态,输出“1路相同频率、不同占空比”的PWM。
本题,修改占空比(改变CCR值)即可。设置参数如下表所示:
波形 PSC ARR CCR 2KHz 5% 400 100 5 2KHz 30% 400 100 5 (4)串口:通过串口查询单价,显示价格。STM32接收:中断、1位数据,发送:串口重定向printf。
(5)LCD:很常规,不再赘述。
(6)EEPROM: