怎么自学 STM32 呢?我想想。当初我也是在学习了一年的 51 单片机后才过渡到 STM32 的,所以算有些经验了。
我大一的时候在实验室的环境下开始学习 51 单片机,虽说学长不怎么管我们这些小白吧,但起码有个环境在这,有不懂的问题都可以向学长提问,这就是环境的好处了。但是如果说周围只有你一个人在学单片机,那这条路走得就会比较艰难了!为什么?因为单片机学习不仅涉及到软件,还涉及到硬件,这就是为什么说嵌入式门槛高的原因了,出了问题你不知道是硬件问题还是软件问题,还是都有问题,需要你根据经验一一排查才可。
说回自学 STM32 问题,STM32 单片机远比 51 单片机复杂,寄存器数量是它的好几倍,各种外设模块,DA、CRC、SPI、CAN、SD、CAN 、TIM等等,而每一个模块可能都有单独的时钟,在使用这些模块时都要提前将时钟配置好,否则根本不能工作;而配置这些外设时钟之前你还要先配置系统时钟才行,而系统时钟又涉及到了分频、倍频的问题,也是繁杂。正因为这些东西实在是太多了,所以出现了库函数开发!
库函数开发的好处就是你不用管如何去操作寄存器,你只要了解什么时候该调用哪一个函数即可,相当方便,所以库函数开发的思路就是,记住各个函数的功能、调用条件(不需要死记硬背)就可以轻松进行开发了。但也正因为如此,所以在学STM32 的时候第一个拦路虎就是如何建立一个 STM32 工程,因为库函数开发需要的文件数量远比单纯的寄存器开发多的多,而这些文件之间还有关联性,很容易编译出错,所以可能在 51 单片机很简单的建工程到了 STM32 里面就会变得复杂了。但这些问题通过网上搜索还是很快能解决的,但是解