首先说结论:一定要学!但要对自己比赛规划有一个清晰的认识
如果时间不够,比如大二快结束的时候才开始准备电赛,那么这个时候要先以补充硬件知识,画板子测试为主。对于stm32和fpga的学习可以放在后面做之前电赛题,和队友一起进行系统联调的时候,将代码看懂,尤其是对应硬件的部分,比如adc的计算转换部分,人机交互中对硬件的高低电平影响。如果看不懂就要和负责对应部分的队友一起讨论,否则后面在更加紧张的比赛时容易出现一些诸如高低电平电平没有对应等低级错误。
如果时间足够,比如从这个寒假开始准备。我的建议还是先从硬件入手。因为只要你的队友靠谱,那么你的硬件部分就能决定你的成绩上限。在这个时候,先把硬件部分学习的较为扎实是更为重要的。而且在过完一遍基础知识后,一定会遇到一些复杂模块,诸如dds ad da等需要嵌入式开发的模块,这个时候再看对应的教程,从硬件需求出发,搞清楚在一道题目中,硬件需要软件做到什么程度以及硬件能够给软件做到什么程度,是很重要的。这将大大减少后面队友之间的沟通成本。
而且,在电赛的时候,睡眠时间会很少。以我自己两届电赛为例,第一次基本就睡过一个完整的觉,导致后面在思路上对方案已经没法完整的走一遍。第二次还好,fpga的队友工作量比较大,但是为了在硬件和fpga之间搭建好桥梁,直到最后一晚上,还需要对模块上某两个电阻进行更换,这个时候就更需要冷静和另外一个人盯梢。如果队内每个人只对自己工程熟悉而对另外两个部分一无所知,那压力就会成本的上升。
最后,作为多个电子类竞赛的参赛者,我的体会就是,电赛就是本科阶段硬件工程师提升水平最快的渠道,但是真正走到后面,硬件和软件(主要是高速硬件驱动,比如dds ad)是没办法分家的。我的理解是,一个好的硬件工程师,也一定是一个合格的软件学习者,最起码需要是一个熟练的代码搬运工。随着电赛题目越来越偏向软件化(或者说纯硬件解决复杂问题的难度太大)和高速化,合格的硬件负责成员,必须要对软件有学习,否则连最基本的对接工作都做不到,这是不能接受的。