跳转至

学习路线

以作者的亲身经历和踩过的坑,制作本教程,帮助初学者快速入门。

gatsby

作者在学校刚开始学习单片机时,使用的首款单片机是STM32,学习过程很痛苦,像下面这样~

bf976b12gy1ga501dewyjg208c06oqis

最主要表现为:

  • C语言基础不牢固
  • 单片机的一些专业术语和八股文不理解
  • 学会了但是不会灵活运用,不知道可以用来干嘛

学习百遍,其义自现,很多深入的内容也是在工作中才接触到的。

由此,从我当初学单片机的视觉,和现在的经验,带大家快速入门,计划课程分为三期

初出茅驴:

edadc0ebgy1fpw4j8vvceg205c04011d

这一步是所有人都会经历的,打算从C语言开始讲解,不会细讲C语言的所有知识点,带大家回顾加强一下C语言,学习单片机前会讲解一些前置知识,以便更容易理解单片机, 接下来就是单片机的内容,包括,GPIO, UART, I2C, SPI, TIMER, PWM (现在看不懂这些没关系)学习完这一期,就明白了,学习完这一期的内容可以胜任助理工程师岗位

乘风破浪:

006APoFYly1g6j6ky2chdg306o06ok1q

打破信息差,不生产代码,只做代码的搬运工。在工作中我们使用的不一定是STM32,不需要自己创建工程,也很少自己写驱动,都是抄抄改改,遇到问题或需要优化,再去分析解决,这一步就需要基础比较扎实才能看懂并更改别人写的驱动,好的驱动是不需要更改的,这一期的课程会讲解STM32和其它单片机差异化的地方,以及如何找别人优质的驱动和快速移植,和第三方的Middleware使用,比如 LVGL,CJson,CRC,Ymodem,嵌入式已经发展很多年了,技术更迭不快,这过程中有很多代码可以直接复用在我们的工程中,这一期的作用就是带大家用别人造好的轮子高效开发,这一期学完就可以从助理工程师中脱离苦海了

来者不惧:

bf976b12gy1ga501dj92dg208c06owzx

上一期学些完可以找到不错的工作,但开发还是不够高效,这一步深入学习别人的软件框架,分析别人的代码框架,我会带大家分析两个sdk(瑞昱,先楫),和ZephyrRTOS 框架,找到共通点,最终使用FreeRTOS作为微内核,构建一套自己的护城河,这一步学完拥有软件架构的能力,这是单片机开发者的终极形态,过程会涉及到cmake和gcc,单元测试,github actions ci/cd 以及github pages

总结

bf976b12gy1g7swlzqt2dg208c06o7ll

上述三期学完,虽然缺少项目的经验,但是对于刚毕业的本科生来说,能够把这三期的内容掌握扎实足矣,我们学习的是基石,基石稳固,上层建筑才更加牢靠,在工作中我们会接触到细分领域,这才是真正的技术壁垒,而所学的三期,决定了能够达到的高度

寄语:路漫漫其修远兮