没有51基础,能否轻松掌握STM32?
学习STM32之前,掌握51单片机的基础是非常重要的,因为它涉及到硬件概念如寄存器、总线和ALU等。即使学了51单片机并了解了中断和定时器等知识,但如果不理解在51上使用寄存器操作IO口时所发生的内部过程,那么当面对STM32的IO口操作时,你可能会感到困惑。因此,学习MCU类的技术必须从微机原理和51单片机开始。
尽管STM32比51先进得多,但学习类似学习高等数学一样,需要先从微积分开始,不可能因为微积分已经存在了几百年就认为没有学习的必要了。回到STM32,它涉及到一系列的知识链:计算机基础->微机原理(以及可能的数字电路和模拟电路)->51单片机->ARM的STM32。
然而,许多所谓的“由入门到精通”的STM32教程存在一个问题,它们没有专门解释各种专业术语和概念,有些甚至建议读者“看不懂可以先跳过”,给人一种只需读这本书就能轻松掌握所有知识的错觉,这是不负责任的。因此,看不懂STM32资料的原因很大程度上是因为不理解其中的专业名词。因此,最好的学习方法是从基础开始,逐步接近目标。
实际上,认真学完微机原理并不需要很长时间,你可以尝试在51单片机上使用汇编编写一些小程序,这将有助于更好地理解微机原理中的概念。当你完成微机原理和51单片机的学习后,对于单片机的内核和外围电路有了清晰的框架,再去学习STM32时,你会发现一切变得清晰明了。刚好,我这里有嵌入式学习路线,毕设,各种项目,需要留个6。
最后补充一点,微机原理中涉及到为支持高级硬件而采用的特殊方法,例如面向大内存的分段管理、MMU、DMA等概念,可以先略过。对于众多汇编指令,重点是理解其中的思路而不是深入研究每个指令。个人认为,除非你对计算机体系结构非常感兴趣,否则没有必要深入探究这些内容,因为一般的MCU项目不会用到如此复杂的外设。