第十二届蓝桥杯嵌入式(2021年)

一、简介

        蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心举办的全国性IT学科赛事自 2010 年起,工业和信息化部人才交流中心连续十三年举办 "蓝桥杯"全国软件和信息技术专业人才大赛。

        这比赛的含金量不高不低,很多去打ACM的大佬都拿这比赛练手,正好我们学校也参加这个比赛,而我个人擅长嵌入式,于是我便参加了嵌入式组的比赛。

        比赛是个人赛,在指定时间内完成题目,题目分为客观题和开发题,客观题是模电、数电、嵌入式相关的一些知识,开发题内容是STM32的开发。

        虽然比赛已经过去两年了,但突然心血来潮,想趁着还没完全忘记的时候把这段经历记录下来。

二、备赛

2.1 客观题

        客观题没有什么好说的,考察的是理论知识功底,模电数电基础扎实就没什么问题,再学会看懂STM32的数据手册就行。

2.2 开发题

        蓝桥杯有专门的比赛开发板,开发题其实就是在不上网的情况下,写好开发板上各种外设的驱动代码,然后组合起来实现一定的功能,需要一定的算法能力。

        蓝桥杯开发板分为旧版和新版,旧版是STM32F103RBT6芯片,基于标准库函数进行开发;新版是STM32G431RBT6芯片,基于STM32CubeMx开发。参赛学生可以任意选择其中一款。

        起初我选择的是旧版,将板子上各种驱动都过了一遍,然后真实模拟比赛场景,将往届的十次左右的省赛开发题都做了一遍。我学到了当拿到一款新的芯片时如何快速找到并读懂其配套的库函数的使用方法,在库文件目录下都有详细的例程和说明,例如STM32标准库3.5的例程就在此路径下:

        临近比赛的一周,坑爹的事情来了,比赛场地那边说,他们配置的是新的板子,然后我就急忙买了个新版去准备准备。新的板子的驱动更加简单,用CubeMx图形化配置一下,驱动就好了,CSDN上有许多相关的教程,这里不再赘述。

        当时把3-11届的省赛赛题都找了一遍(12届的是模拟题),然后每一个题目都花几小时去模拟一下比赛,断网做题,旧板子和新板子都刷了一遍。

        新版和旧版有一些外设是重叠的,有一些是特有的,但是赛题是一样的,那么应该只考两者特有的,或者主考算法。还有,省赛只需要主板就行了,而国赛是要考察扩展板的(听说之后取消了扩展板)。

三、比赛过程

        比赛过程是断网的,主办方提相关的软件以及资料、库等必需品。

        客观题没有什么好说的,考察的是理论知识功底,省赛的话能够把开发题做好基本就能得省一了,但是国赛的话想要国一就必须把客观题和开发题都做好。

3.1 省赛

        说说开发题,省赛题目是做一个停车计费系统,CSDN上也有。蓝桥杯嵌入式——第十二届第一场省赛停车计费系统真题

        如我所料,赛题考察驱动方面不多,算法偏难。当时做的时候感觉难点就是串口的各种格式输出问题,年月日什么的,另外就是万年历算法问题了,因为没有规定停车停多久,有可能是几个月几年的,所以就会涉及大小月、闰年等问题。习惯于干驱动干单片机的我还真没接触过这个算法,当时时间还剩两个半小时比较充裕,我索性就用列举的形式把日期中的各种情况以及串口输入输出的各种格式都判断一遍,然后输出对应的值。

        不得不说,省赛赛场还是比较坑的,当时问的时候说用的新板子,结果去到现场比赛的时候发现用的是新的一批旧板子,属实让人无语,还好我把新旧板子都练习过一遍。

        还有很多电脑装的环境是不全的,要么Keil版本不对,或者没装STM32的package,或者连Keil都没破解的,比赛前我换了一台有破解Keil4的电脑,然后自己安装了Keil5和package,足足花了半个多小时。然后旁边那俩哥们挺倒霉的,我做完交卷了他们还没开始写代码。。。

        另外交卷的时候一定要记得按照他题目说明来命名文件,不然白做,还有打包成压缩包之后,最好把压缩包文件名也改好。

        赛后等了大约25天出结果,不出意料的是省一进了国赛了。

3.2 国赛

        省赛确定晋级后就要开始练习扩展板了,上网查找了下官方提供的扩展板的驱动开发资料(例程)后稍微改一改,改成自己熟悉的形式,然后多做几次往届题目就记下来了。

        国赛开发题,CSDN上也有,参考蓝桥杯嵌入式——第十二届蓝桥杯嵌入式国赛

        

         感觉国赛的算法考察反而得更简单一点,就是根据输入参数的不同来输出两个占空比可调以及频率可调的PWM波,当然还有串口的读写。看上去是一道物理学题目,但其实也是非常简单就能解出来了,所以虽然是国赛,但我对此的记忆居然还没有省赛那么深刻。(也可能是省赛的赛场比较坑导致我记忆深刻)

        遇到了几题不会做的客观题,外加国一名额相对较少,所以最后获得了国二。(不得不说客观题挺看运气的)

四、总结

        蓝桥杯嵌入式虽然不是特别难的比赛,但这大大提高了我对单片机的熟悉程度及其开发流程,一轮省赛国赛下来感觉收获颇丰。

        以前的比赛总是只使用STM32的小部分外设功能,其余的用得少,而这次比赛由于考点比较全面,什么外设功能都有可能出题,因此备赛期间就需要把各种外设的驱动与应用烂熟于心,要对STM32进行一个全方位的了解。而单片机的架构都比较相似,一通百通,在全方位熟悉了STM32后,再拿到一款新单片机后能够更快速地上手进行开发。

五、其他

        蓝桥杯单片机类的组别中比赛除了嵌入式组以外,还有一个叫做蓝桥杯单片机组,这个组别的比赛内容与嵌入式组类似,只不过使用的是51单片机,开发难度上会稍微简单一些。

        另外单片机组的获奖名额比嵌入式组的要多不少,如果是迫切需要获奖加分(你懂的)奔着获奖去的话,建议报名单片机组。但如果你是奔着练习和学习而来的话,建议报嵌入式组,相比于51单片机,32位MCU的应用会更多。

物联沃分享整理
物联沃-IOTWORD物联网 » 第十二届蓝桥杯嵌入式(2021年)

发表评论