导航菜单
首页 >  蓝桥杯历年真题单片机视频  > 2024年蓝桥杯嵌入式经验分享(附往届真题和蓝桥杯自己整理的嵌入式资料)

2024年蓝桥杯嵌入式经验分享(附往届真题和蓝桥杯自己整理的嵌入式资料)

1:关于蓝桥杯嵌入式组:

  蓝桥杯嵌入式组比赛主要考察的是STM32相关的编程知识,涉及选择题的电子学科基础知识和编程大题实机操作。与蓝桥杯的其他纯软件组(如C、Java等)不同,嵌入式组更偏向硬件,要求参赛者具备模拟/数字电子技术基础、ARM Cortex M4硬件资源和软件编程与调试等知识。

  在比赛中,选手可以选择使用组委会下发至赛点的嵌入式竞赛平台新版本(STM32G431RBT6微控制器)或自带嵌入式竞赛平台旧版本(STM32F103RBT6微控制器)参加比赛。其中,G4系列是官方主推的平台,如果还没有购买开发板,建议购买G4系列进行学习。

  在准备比赛时,参赛者需要了解并掌握STM32G431单片机的相关知识,包括GPIO输出、串口通信、定时器、ADC、中断、DMA等基础知识,以及嵌入式编程知识,如状态机、分时复用、非阻塞延时、信号量、互斥锁、消息队列等高阶内容。

  此外,参赛者还需要熟悉Keil MDK集成开发环境(5.0以上版本可用)和STM32 Cube MX配置工具(推荐安装5.3.0及以上版本)等软硬件环境,并注意软硬件的兼容性问题。

  总的来说,蓝桥杯嵌入式组比赛是一个考察参赛者STM32相关编程知识和电子学科基础知识的比赛,需要参赛者具备扎实的C程序编程规范、模拟/数字电子技术基础、ARM Cortex M4硬件资源和软件编程与调试等知识,并熟悉相关软硬件环境和工具。

2:如何备赛 & 需要的知识

  需要的前置知识:C语言(必须),单片机基础(尽量),模电数电(尽量有,这个做选择题有用),计算机组成原理(尽量有)

2.1:学习建议:

  对于大一的学生来说,C语言是必须要学好的,特别是要熟练掌握位运算和指针等重要概念。   建议从Arduino Uno单片机入手学习,使用C语言编写代码,实现基本的灯光控制、串口通信等功能,这有助于培养对单片机编程的兴趣。   强烈推荐参与智能小车项目,从简单的电机控制开始,逐步学习差速转弯、巡线、避障等内容,这将使你对嵌入式系统有更深入的理解。 在课余时间,可以简单了解一些模拟电路和数字电路的基础知识。 同时,参加电子竞赛等比赛也是很有益的,可以锻炼自己的技能。   对于大二及以上的学生,建议复习巩固C语言知识,特别是要熟练掌握位运算和指针,并尽可能掌握结构体和共用体的使用。此外,学习一些基础的优化技巧也是很重要的,比如利用位运算简化计算、使用带参宏定义或内联函数提高效率等。

2.2:具体细节:

  如果已经具备了C语言基础和任意一款单片机基础,可以一个月左右达到比赛水平。   首先,建议购买一块嵌入式组的开发板,推荐从小黄鱼上淘一块二手的板子。开发板分为新版(G4处理器)和旧版(F1处理器),旧版板载的那个CoCo Link很难用,驱动不稳定,个人建议使用新版开发板。开发板配套的拓展板看个人情况购买,拓展板是国赛才用的,省赛不用。个人建议的开发流程:使用CubeMX+HAL库+Keil5MDK。不推荐使用标准库。

  开发板的卖家都会送例程,就是每个板载外设对应的测试代码。这些代码可以先不看,先去B站学习CubeMX软件的使用,STM32的基本入门知识,建议看正点原子HAL库的视频,学习完串口配置就可以了,其它外设的使用大同小异,需要什么看什么。建议一边看视频,一边动手进行代码编写,实现视频中的实验效果。基本入门后再看卖家送的例程。学习时可以搭配CSDN搜索不会的内容。

  学习完所有例程后,可以尝试一下不看例程代码,完全从0开始,使用CubeMX生成工程,并完成每个例程的实现效果,则底层驱动基本上就过关了。

  底层驱动过关后,开始学习编写上层逻辑代码,先尝试实现在屏幕上显示几组数据,可以通过按键调整每个数据,如加减,清零等。这些都实现了,尝试进一步作出界面切换功能,制作多个界面,并可以通过按键切换。之后,可以看一下历年的省赛编程大题,做近3年的就差不多够了。省赛编程大题如果能在4小时内做完,且实现所有功能,则能保底省二以上。 (这部分转载于https://zhuanlan.zhihu.com/p/638704397)

3:比赛情况

省赛:嵌入式组比赛时间为上午9:00到下午2:00合计5小时,一共两个大的电脑教室,分别为旧开发板(F1处理器)和新开发板(G4处理器),赛场提供开发板,和编程所需要的台式电脑,电脑上已经提前下载了赛点资源包,安装了一半的开发环境(只安装了Keil5MDK,CubeMX软件,提供但没有安装CubeMX芯片包),每个电脑教室容纳(大约)80名参赛选手,整个教室只有大约5台示波器和万用表,需要使用时向监考老师举手示意,老师会帮你拿过来。

省赛题目难度不大,通常情况下,省一和省二选手最后的编程答题都能完全做出来,个人感觉,区分主要是在前面的选择题上,所以,赛前千万抽空做一做历年的选择题,获取方式:可以去CSDN或者知乎搜索。STM32单片机的参数,不需要强迫自己背下来,只需要知道基本的,比如时钟主频这些。其它内容可以查看芯片手册或CubeMX软件。选择题中关于STM32的知识类似于开卷考试,基本上手册里都能找到。

所以,赛前强烈建议!!! 1、熟悉CubeMX离线安装芯片包(去年参加比赛比赛方芯片包就装错了,我自己捣鼓半天装了我平时熟悉的芯片包) 2、一定要亲自做一下往届的赛题,只练习每个模块的代码,不把它们联动起来,真正做题基本上实现不了什么功能,务必做真题,不要只练习某一个单一模块。 3、熟悉标志位的使用,它是负责开发板各个模块的联动使用,赛题往往会设置好多个标志位,如果不熟悉或者没有使用过标志位,比赛时会非常吃亏。 4、最后,省赛基本上实现两个模块的功能就能获奖,所以大家不要害怕,花时间准备还是能够获奖的,给大家建议就是代码一定要多写,不要只看逻辑,平时写少了,真正比赛时一紧张会忘记,所以熟能生巧,大家加油!!! 在这里插入图片描述

最后附上往届我收集的赛题和资料:

相关推荐: