从18年比赛报名末才知道这个比赛,寒假准备了十天的时间就过年了,过完年板子就坏了,就算省赛准备了半个月,国赛看博客也知道只准备了两天(实在学不下去了),最后只获得了国二。所以大家如果想要取得好成绩还是得专心准备。下面开始分享经验:
1. 基础介绍
学习STM32是在18年初开始的,之前有过学习51的一点经验。STM32也没有全部的外设,只是任务驱动型的学习,大家也可以这样学一下学的还挺快的。
2. 考察知识点
蓝桥杯嵌入式比赛主要分为两个部分:选择题和程序题。
选择题主要考察的有数电、模电的知识,还有一些ARM体系结构的东西。由于机械专业的,数电模电没有学过所以全程蒙,ARM体系结构相关的在嵌入式三级考试的书中见到过(所以大家可以一边准备考试一遍蓝桥杯呀)。而且这部分省赛和国赛的题目难度差异比较大,省赛的选择题大部分可以再STM32的datasheet中查到。
程序题主要是省赛在底板上面进行,主要考察的外设有LED、RTC、定时器、ADC、串口以及LCD。较为简单,只要省赛前在下面将每个外设相关的代码写熟,将题目过一遍应该可以进入国赛。
GPIO:GPIO部分主要有锁存器控制LED,四个按键,以及需要禁用swd的蜂鸣器。
定时器:定时器中断,pwm输出及捕获,互补输出以及输出比较。这里要注意和串口的冲突。
LCD:这里主要用到高亮显示等,有一年用到了单一个字的高亮显示。
串口:串口部分需要写发送字符串的函数,以及特定格式的串口接受。
剩下两个主要就是RTC计时自己adc的单双通道采集了。
国赛的时候除了底板还会提供扩展板,扩展板提供的资源相对底板多出了不少,主要有数码管,pwm的发生芯片,adc按键,两个电位器,三轴,DHT11以及DS18B20温湿度芯片。
数码管:这部分比较好操作,就是芯片使用的是一个单引脚控制的芯片。需要注意的是在第十届国赛的题目中由于处理不当出现了串口和数码管互相影响的现象。
PWM:可能是因为信号源太贵了直接板载了可以产生不同频率和占空比的芯片,主要考察的还是PWM的输入捕获。
ADC按键:这个和单独捕获adc基本相同,需要注意的不同板子每个按键的电压值可能存在误差,所以需要对每个按键限定一个相对较宽的范围。
温湿度:两个芯片都是固定的操作只要读出即可,但是有些年题目提供了函数,第十届没有提供,所以很多人没有写出来,所以如果有时间应该尽量将这两个芯片读函数写出来。
其他:剩余的三轴芯片一直以来没有考过但是也需要看下,电位器和底板的一样。
3. 0000
第十届的情况下大约是这样的 :
省赛:只要了解底板全部的外设,能够写出驱动,并且对于简单的逻辑可以写出来基本可以省一。
国赛:进入国赛基本大家驱动都可以写出来,主要是考察逻辑上的以及硬件上的bug,包括串口和PWM的分时复用等。能够解决大部分bug可以国二,在此基础上解决全部bug或者客观题做的好可以国一,国特应该有一定的运气成分在里面~~