摘要:本文为作者对第十届蓝桥杯嵌入式设计与开发项目省赛——程序设计试题的解析。本文包括“题目要求”、“程序设计”、“效果展示”3个部分。供复盘使用。若发现错误之处,请不吝赐教。
链接:蓝桥杯嵌入式方向备赛记录(STM32G431)为作者备赛蓝桥杯嵌入式过程中,整理的学习总结。包括各模块使用要点、各模块程序等,基本搭建好工程框架,给出了各模块处理程序。
目 录
一、题目要求
二、程序设计
- 工程可以按照几条主线进行下去:
模拟电压输入(ADC):要采集电压,要判断实时电压和阈值电压的关系。
按键:首先要能判断哪个按键按下(即按键检测),然后对应按键有何功能。B1:切换界面,程序上即为翻转界面状态标志位;B2:切换参数选择项并高亮显示:可以扩展界面状态标志位,在LCD处理函数中,根据标志位变量值,高亮显示对应行;B3:加按键;B4:减按键。可以通过自加++、自减--运算符改变相应变量值。
按键部分涉及3点要解决好:(1)高亮显示行,即状态标志位如何改变?(2)加减功能,要处理好,不能出现冲突,即电压上限阈值>电压下限阈值,和,上限下限指示灯不能相同。这2点归根结底,还是变量设置的问题。(3)按按键不要影响到LED,即按键要以非阻塞方式检测按键,并最好进行消抖处理。这1点是所有试题都要解决的。
LCD:2个界面。主要有2点要解决好:(1)高亮显示;(2)界面切换时,不要有上一界面的数据/背景遗留。
LED:首先要封装好LED显示的函数,然后就是LED处理。要解决好LED某些位,按一定频率闪烁的问题。即通过Systic实现。程序有2种写法。
其他注意点:(1)串口重定向后,要勾选“魔术棒”里的“Use MicroLiE”选项,不然屏幕显示不了;(2)EEPROM问题。
总的来说,我认为变量/