
经常有人说,51太老了,没必要学,可以直接学STM32。那对于小白来说,应该如何选择的呢?那么如何确定你真的可以直接学STM32呢?接下来聊聊,直接学习STM32你需要提前准备好什么? 一、C语言绝对不能是hello world水平 结构体、指针玩得转吗? STM32的标准库、HAL库都是对结构体和函数指针的应用。比如看到GPIO_InitTypeDef就是单片机引脚初始化的结构体,看到这句代码脑海里必须得有整个结构的框架,不然你脑海里只有懵。能理解底层内存操作吗? 知道volatile干嘛用的?指针是如何访问硬件寄存器的?指针和结构体这些在STM32驱动编写里那是家常便饭。 头文件、源文件管理清晰吗?到了STM32这个阶段,头文件和源文件数量直接翻倍,甚至是更多,可不像51单片机阶段的代码文件数量。 各个文件有各个文件的作用,代码稍微一多就乱成一锅粥?STM32工程文件数量那么多,你真的做好心里准备了吗。 二、寄存器你能理解吗?
STM32开发的时候很少直接操作寄存器,主要是用标准库或CubeMX生成的代码。你得明白,这些库函数其实归根结底都是在操作寄存器。本来在寄存器理解的难度上,又加了一层库函数。所以你要先有寄存器的知识,之后才能对库的使用有更深的了解,要不然还是懵。 三、看原理图、找引脚、搭最小系统,能搞定吗? 51都被很多人说是过时的单片机,那这种过时的单片机的最小系统必然简单, 所以就需要掌握电源、晶振、复位电路、下载接口这些基本的原理。STM32在51的基础上会复杂一些,引脚更多,引脚功能更多。所以你需要先对电路还有原理图这些有所了解。这也是我当时出的零基础三件套课程,为什么要组合C语言+单片机编程+电路设计原理图PCB,有了这些,你再面对单片机时,不会懵,不会恐惧。 总结如果以上三点你都自信满满,恭喜你,你已经具备了直接攻坚STM32的必要基础,可以立即开始学习STM32。否则犹如以卵击石。如果有一丝还不确定或没接触过,强烈建议你先系统学习51单片机。这绝不是浪费时间,而是对你自己负责。 |