您可能已经学习了很长时间,但是当Leader向您抛出STM32项目时,您是否仍然感到茫然?一位刚开始学习51单片机,后来又改用STM32的朋友。主要遵循在线在线课程进行学习,并遵循以下代码。在此过程中,我从各种培训机构那里学习了视频课程,并接触了操作系统,并且可以在开发板上编写例程。后来,他又学会了PCB制图。由于他在学校的时候没有学到很多东西,而且他不是电子专业的学生,所以他很困惑,也不知道如何学习。我记得当我们上大学时,我们的专业老师反复告诉我们“主人带头,而实践取决于个人”。说完这些话,我们还没有结束,并且经常被警告要深入学习51台单片机。我当时不完全了解他的意思,直到工作了几年后才知道。在嵌入式领域,技术已经得到了改进,底层的东西是必不可少的。通过研究51单片机,您可以了解与单片机原理,SOC和单片机相关的硬件知识。当我工作时,我在一家军工公司工作。当时,我是一名嵌入式开发工程师。那时,我还是一个新手,甚至没有很好地学习C语言。来自华为的一位老工程师带我去学习和工作。在华为期间,他主要从事与C语言相关的开发,并且他对51种微控制器有所了解。我和他一起做的第一个小项目是使用STM32实现的。他浏览了STM32的相关演示,几天后,这个小型项目开始形成。尽管该项目很小,但它涉及到由主机开发的C#,用于微控制器开发的C语言,用于图形界面的PS以及CAN通信协议。项目完成后,在与他聊天的同时,我了解到他以前并不熟悉CAN通信和STM32。什么?也许这是类比的结果。实际上,C语言与基础开发语言非常接近,它也是嵌入式开发的主要开发语言。在不了解底层微机原理的情况下学习C语言是不可能的。寄存器,位操作,堆栈,存储器的应用和释放,这些知识点也将被触及。回到本文的主题,我无法做这个项目,因为除了实质性的知识外,我一无所获。尽管我已经学习了很长时间,但您已经阅读了官方手册吗?恐怕我一直在使用标准库,HAL库等。这并不是要贬低图书馆的发展。实际上,图书馆发展是一种有效的发展方法。专家还将使用库来开发STM32项目,但他们可能会尽力了解他们使用的标准库和HAL库。开发库就像一个轮子,这是许多工程师的智慧的产物。下图是一个打包的外围驱动程序,有必要学习如何实现。底层的确确实更复杂,底层软件工程师的成长周期确实更长一些。有人可能会争辩说,各个制造商的配置工具现在已经非常完善,为什么我不专注于应用程序和算法,而把现有的驱动程序放在我自己的笔迹上呢?然后,您可以放心地成为应用软件工程师,不要与底层混为一谈。要进行MCU开发,您必须知道未来的发展方向。曾担任软件工程师几年,然后转入管理层?如果对技术的追求更高,那么您的工作方向必须是系统架构师。要成为合格的系统架构师,您必须了解微控制器底层的工作原理,甚至具有相当程度的硬件知识。应用层的算法只能锦上添花。这些底层称为“底层”。因为它们确实是整个系统框架中最基本的部分。就像建造建筑物一样,这些都是基础。仔细阅读官方手册和注册手册,并亲自编写每个驱动程序,然后一点一点地做。同时,学习硬件知识,例如电子组件和电路原理。实际上,如果您能坚持下去,您将击败90%的人,找到工作自然不是问题。