本文是博主连续两届准备蓝桥杯嵌入式组的心得,不涉及基础模块原理和逻辑设计思路的讲解,只谈谈自己的备赛经验和需要注意的地方。
个人情况
- 自己曾参加的是第十一届和第十二届蓝桥杯嵌入式比赛,在第十一届比赛中获得嵌入式组国一(名次是全国第二),在第十二届比赛中获得嵌入式组国二。
- 在准备第十一届比赛时,省赛准备2-3周的时间,国赛准备一周左右的时间。第十二届省赛和国赛都是准备2-3天的时间。
- 自己之前是有过stm32方面的知识,因此可以快速上手。(注意新手没有学过嵌入式知识也没关系)
- 奖状证书如下:
对蓝桥杯比赛的认识
-
把基础模块的驱动程序及应用熟练以后,省赛不是问题,进入国赛,若想拿到好的名次,就要在客观题上下功夫。
-
比赛主要是考察对STM32的使用(程序题占总成绩的70%),客观题会考察STM32、Cortex-M3、C语言、数模电的一些基础知识。
-
程序题:基础模块 + 逻辑设计
-
客观题:可以去查询官方提供的资料(数据手册、STM32/芯片资料)。
-
蓝桥杯嵌入式组竞赛大纲(从官网上看,实时更新。)
-
对于之前没有接触过STM32的同学,大家可以在网上看下STM32视频教程前面的部分,不需要看太多,以B站上的正点原子教程为例:正点原子STM32教学(野火教学也不错,可以互相补充)
- 需要了解开发环境搭建、程序下载、新建工程(库函数、寄存器)、比较重要的资源讲解(GPIO/按键/串口/ADC/PWM)、软件调试。
- 以我的经验:注意跟着教学视频学习的同时,要学会看板子的原理图,不同STM32型号的板子原理图基本相同,如果能看懂蓝桥杯嵌入式组官方板子,则非常方便编程。
-
如果同学之前接触过STM32单片机,对硬件也有了解,可以直接上手蓝桥杯嵌入式竞赛板,进行训练。
考场文件介绍
- 上述文件夹截图中出现的文件,即是蓝桥杯嵌入式组考场上所能见到的文件
- 这意味着大家上考场钱需要了解清楚这个文件夹有什么东西,有什么资源可以利用。
- 简单介绍:
- I2C参考程序: 考场上可以直接使用,涉及EEPROM时使用。
- STM32固件库v3.5: 所需库函数可以直接从中复制进行修改,很方便。
- 串口调试工具: 需要掌握其中一款软件。
- 数据手册: 芯片资料+STM32资料。
- 液晶驱动参考例程: 可以当作新建工程模板。
个人建议前期准备顺序
- 把板子上的资源了解清楚,熟练书写各驱动程序及其调用方式(基础!!!)。
- 刷往年省赛题或者国赛题,目的:熟悉程序题的考察方式/训练逻辑思维。(模块->系统)
- 刷客观题,临考前两天准备即可。
- 注意:省赛只考察竞赛板,国赛考察竞赛板+扩展板。
- 虽然国赛离省赛成绩出来只有两周左右时间,但是也不用紧张,如果前面省赛时准备得很充分,扩展板上的资源很少,两周的时间很充足。
- 备注:国赛在省赛提供的所有资料的基础上,增加了:
- 扩展板的相关数据手册和电路原理图
- DS18B20和DHT11的驱动
需要掌握的基础知识点
- LED、按键、串口、外部中断、液晶LCD显示屏、ADC
- EEPROM、实时时钟、普通PWM输出、PWM输出比较、PWM输入捕获
- 针对蓝桥杯嵌入式板的学习途径:
- 技术论坛(CSDN、博客园等)
- 百度、知乎
- 学习教程(淘宝)
- 《蓝桥杯全国软件和信息技术专业人才大赛(电子版)实训指导书》(淘宝、咸鱼)
编译环境和新建工程
- 编译环境有Keil4和Keil5两种选择,官方比赛提供的是Keil4,如果你平时训练用的是Keil5的话,主要有以下两点不同:
- Keil4没有代码联想补全功能,所以如果你使用Keil5进行平常训练,可以关闭代码联想功能。
- Keil4在设置Colink下载程序时,构建工程稍有不同。
- 综上,建议平时训练就使用Keil4,避免一些不必要的麻烦。
- 构建工程可以选择直接使用比赛时提供的液晶驱动例程,也可以选择自己构建工程。若选择自己构建工程,平时需要多练习。
建议几点
- 熟练记忆各个引脚的功能
- 竞赛板的外界的引脚一共有8个(PA1-PA7),与扩展板相连时,是扩展板所有外设的引脚。
- 相信在练习比赛模拟题的过程中,脑子里就会逐渐对PA1-PA7越来越熟练,虽然说这些引脚对应的功能,对应的时钟通道我们都能在相应手册上查到,但是比赛时间紧张,希望能熟记。
- 贴下
- 每做一次赛题就要重新开始
- 希望每次重新做一道主观题时,都能重新构建工程->重新编写每个驱动程序->写逻辑层上的代码
- 希望每写一遍,加深一遍记忆。
- 工程建立越熟练越好,基础驱动编写越快越好。
- 碰到问题不要放弃
- 在平时训练过程中遇到问题,一定要解决掉,否则赛场上可能会再次遇到。
- 遇到问题,解决问题,获得成功才是最快乐的。
- 在蓝桥杯的比赛前,我们要先打开液晶驱动参考例程,把液晶驱动参考例程的程序直接烧录到开发板里面,检测是否能够正常烧录,开发板是否有损坏,如果出现烧录不了的情况,赶紧叫工作人员帮你换电脑,一分钟都不要耽搁。一定要确定电脑里的软件,以及板子能够正常烧录,没有任何问题,再进行比赛,否则你做的一切都是毫无意义的。(重点!!!)
- 目前嵌入式组分为两种板子:
- 新板(MCU选型为STM32G431RBT6),组委会提供,使用HAL库编程。
- 旧板( MCU选型为STM32F103RBT6 ),选手自带
- 大家平常训练的时候注意,使用你将在赛场使用上的竞赛板进行训练
- 我以上叙述的练习方式是基于旧板进行的,不过准备思路新板和旧板都一样。
总结
- 蓝桥杯嵌入式比赛就像做数学题,当你刷题刷得够多时,看到题目就会有想法,所以多做往年真题,训练自己的逻辑思维,之后你会发现大多数程序题的逻辑设计思路时一样的。
- 蓝桥杯不同于其他比赛,比如ACM、建模、电子设计大赛等,它是非常依靠平时训练的,除非你对嵌入式很了解,否则平时要把熟练度提高,基础模块的程序编写要记忆深刻。
资料获取
- 我自己整理了准备资料,有比赛时官方提供的资料
- 还有自己编写的竞赛板的基础模块代码(省赛)和扩展板的基础模块代码(国赛)
- 两届国赛真题代码,第九届和第十届。以后还会继续更新往年真题。
- 资料内容如下,可以私聊博主获取。