自己亲测2周上手stm32的方法,不一定最好,但很管用。
我开始接触STM32时,也一脸懵逼。在此之前,我还用51单片机做过项目,算是有一些基础。
但到了STM32,发现很多知识出现了断层,什么标准库、Cortex-M3、时钟树、DMA、FSMC、USB都是什么鬼。
随便一个USB,想学透,都够喝一壶了。
好在,我学STM32,是因为项目需要,根本没那么多时间给我系统学习。
我就买了个开发板,主要是想要拿每个外设的例程,看看是怎么用的。
在开发板上跑通以后,我就移植到项目中,改改引脚参数啥的,后面也没再怎么深入学stm32了。
可以说,第一个项目都做出来了,时钟树那个图,我都不知道怎么看。
后面stm32项目做多了,再针对性看一下教程,秒懂。然后现在一段时间没研究了,又忘了。
这就是学STM32的秘诀,不知道你看懂了没有。
传统的学习方法是,我先系统学一遍,然后再去实践。
而学单片机,甚至是学电子,我觉得更加直接高效的方法是,先把结果实践出来,再去倒推理论。
就像学开车,只要把方向盘,油门、刹车掌控熟练,就可以上路了,而不需要把车的结构,原理,研究得明明白白。
其实学单片机也是一样的套路,我们要明白单片机只是一个工具,虽然功能强大,但终究只是实现目标的手段。对初学者而言,系统掌握单片机的原理并非最重要的。
相反,我们应该专注于用单片机实现特定功能,这才是学习的真正目的。
比如说,你想学习单片机,去参加类似于机器人这样的比赛。
如果是这样,其实只需要掌握一些基础知识,比如GPIO、UART、定时器和PWM,学会这些后,就可以尝试驱动电机了。
然后机器人需要进行更复杂的交互,就会接触到各种各样的传感器,这些传感器大多数都是采用UART、IIC、SPI这3种协议,慢慢地,你会发现以前很难懂的知识点,突然变得好理解,也对它们的使用场景更加深刻了。
对于初学者来说,可以参考这个思路学习,先有特定的需求,比如你要做个什么东西,然后学习相关单片机外设,最后结合网上例程和已学知识,实现目标功能。
不要期望一开始就能理解单片机的所有外设,这样过程枯燥困难,又没什么正反馈和实际需求,慢慢就学不动了。
最近有些老铁找我咨询学单片机,聊完发现99%的人都走了弯路,特意写了一篇单片机学习路径:
单片机不踩坑的学习路线https://blog.csdn.net/2301_78464137/article/details/141396541