现在我们随便去招聘平台搜索”嵌入式工程师”,有很多岗位要求都是需要STM32。
可见目前STM32市场之大,如果我们想从事这个嵌入式单片机开发这个工作,就必须要跟着市场走。
这也是我们无际单片机编程培训的导向,市场需要什么,我们就去做什么。
我们学习的目的,大多数人都是为了找一份比现在体面的工作。
希望自己工资高点,最起码在意外来的时候,不会除了自责和眼泪,一无所有!
跟着市场走,我们的付出才有意义,如果你想从事单片机开发,stm32是一个必须掌握的工具。
是的,我这里用工具来形容stm32,能领悟这句话的基本都是从业几年的老手了。
虽然stm32市场占有率很高,但也没必要去神化它,更没必要看到5.6百页的数据手册惧怕。
如果你想靠看数据手册学会stm32,简直就是痴人说梦。
这款单片机,我用了差不多也有4,5年时间了,到现在都没看过多少次数据手册,看着心塞。
任何一款我没用过的单片机,我首先会想办法先拿到每个外设的例程,其次是数据手册,有了例程基本不用看视频教程。
看视频教程太浪费时间了,一坐就是一小时,看一千遍不如自己动手试一遍。
当然,我这是有了很多不同单片机开发经验的玩法,可能不适合新手。
学习stm32单片机,我个人认为重点应该放在他们的库上面,掌握库的使用,你就掌握了stm32。
配置寄存器?内部结构?时钟树?还是算了,新手根本看不懂。
正确的学习方向应该是,先把这个芯片外设用起来,用熟,再回过头去看芯片内部结构、寄存器那些东西。
很多人可能会好奇,不懂理论,能实操吗?
肯定可以,调库就行了,调库你就能把外设全部用起来,一般芯片手册我是用到外设特殊功能,或者有问题的时候我才会去查阅的。
如果你前面没有51单片机的基础,以及没用51单片机做过一些项目的话,前期直接看例程肯定是看不懂的。
所以新手想快速掌握stm32开发,我个人建议2个方向:
1.通过开发板学习
市面上的开发板非常多,比如原子,野火的,他们配套的教程也非常齐全,相比之下我个人认为野火的更适合入门。
前期建议从STM32F入手学习,开发板买乞丐版的就行,很多高配的实际上就是让你看起来逼格高而已,实际产品开发根本不会用那种方式去做,成本太高。
通过开发板学习优点就是基本每个外设你都能学到,缺点是你学完这些外设可能还是不知道怎么用这个芯片来做项目。
开发板的作用就是为了让你快速入门,把单片机外设用起来,管你什么程序规范和架构。
2.通过项目去学习
这个也是我当初的学习方法,因为当时产品进度比较赶,根本没有那么多时间让我去系统学习。
我直接在网上买了开发板,主要是看重他们的每个外设的例程,把我产品需要的都可以直接用起来。
这种方式以后大家在开发过程中会用得很多,效率贼高。
所以我们无际单片机编程也设计了基于stm32的物联网网关产品提供给学员学习。
通过项目学习的优点是能同时学会单片机和做产品的思维,让你学以致用,缺点是毕竟产品不会把单片机每个外设都用到。
不过即便你是通过项目学习,我还是建议买个开发板备用,用来调试做实验。
现在STM32主流还是用keil5来编程开发,我的个人习惯用Notepad来编辑代码,然后用keil来编译代码。
不过后面开发Notepad这个工具的公司做了一些人神共愤的事情,导致大陆很多工程师谴责和唾弃这个工具。
还有就是用IAR的,我之前碰到一个老油条用这个开发环境来开发stm32的产品,据说是编译出来的代码更紧凑,占用的内存更小。
不过编程软件不是重点,重点还是你的编程水平,以及你对单片机的熟练度。