学习路线¶
以作者的亲身经历和踩过的坑,制作本教程,帮助初学者快速入门。
作者在学校刚开始学习单片机时,使用的首款单片机是STM32,学习过程很痛苦,像下面这样~
最主要表现为:
- C语言基础不牢固
- 单片机的一些专业术语和八股文不理解
- 学会了但是不会灵活运用,不知道可以用来干嘛
学习百遍,其义自现,很多深入的内容也是在工作中才接触到的。
由此,从我当初学单片机的视觉,和现在的经验,带大家快速入门,计划课程分为三期
初出茅驴:¶
这一步是所有人都会经历的,打算从C语言开始讲解,不会细讲C语言的所有知识点,带大家回顾加强一下C语言,学习单片机前会讲解一些前置知识,以便更容易理解单片机, 接下来就是单片机的内容,包括,GPIO, UART, I2C, SPI, TIMER, PWM (现在看不懂这些没关系)学习完这一期,就明白了,学习完这一期的内容可以胜任助理工程师岗位
乘风破浪:¶
打破信息差,不生产代码,只做代码的搬运工。在工作中我们使用的不一定是STM32,不需要自己创建工程,也很少自己写驱动,都是抄抄改改,遇到问题或需要优化,再去分析解决,这一步就需要基础比较扎实才能看懂并更改别人写的驱动,好的驱动是不需要更改的,这一期的课程会讲解STM32和其它单片机差异化的地方,以及如何找别人优质的驱动和快速移植,和第三方的Middleware使用,比如 LVGL,CJson,CRC,Ymodem,嵌入式已经发展很多年了,技术更迭不快,这过程中有很多代码可以直接复用在我们的工程中,这一期的作用就是带大家用别人造好的轮子高效开发,这一期学完就可以从助理工程师中脱离苦海了
来者不惧:¶
上一期学些完可以找到不错的工作,但开发还是不够高效,这一步深入学习别人的软件框架,分析别人的代码框架,我会带大家分析两个sdk(瑞昱,先楫),和ZephyrRTOS 框架,找到共通点,最终使用FreeRTOS作为微内核,构建一套自己的护城河,这一步学完拥有软件架构的能力,这是单片机开发者的终极形态,过程会涉及到cmake和gcc,单元测试,github actions ci/cd 以及github pages
总结¶
上述三期学完,虽然缺少项目的经验,但是对于刚毕业的本科生来说,能够把这三期的内容掌握扎实足矣,我们学习的是基石,基石稳固,上层建筑才更加牢靠,在工作中我们会接触到细分领域,这才是真正的技术壁垒,而所学的三期,决定了能够达到的高度