可见目前STM32的市场非常大,我们如果想从事嵌入式单片机的开发,就要跟着市场走。
这也是我们无极单片机编程培训的方向,市场需要什么,我们就做什么。
我们学习对于大多数人来说,目的都是为了找到一份比现在的工作更体面的工作。
希望我的工资可以高一点,至少当发生意外的时候,我不会只剩下自责和泪水!
只有跟着市场走,我们的努力才有意义,如果想从事单片机开发,stm32是必须掌握的一个工具。
是的,我这里用了“工具”这个词来形容stm32,能看懂这句话的,基本都是在行业里混了几年的老手了。
STM32虽然市场占有率很高,但是没必要将其神化,看到5600页的数据手册也没必要对它产生畏惧。
如果想通过看数据手册来学习stm32,那简直就是痴人说梦。
我用这个单片机大概有4、5年了,数据手册都没看过几次,郁闷死了。
对于任何我没用过的微控制器,我都会先尝试去获取每个外设的示例代码,然后再看数据手册。有了示例代码,我基本上就不需要看视频教程了。
看视频教程太浪费时间了。你可以坐在那里一个小时。亲自尝试一下总比看一千遍要好。
当然这是我根据很多开发不同单片机的经验玩过的方法,可能并不适合初学者。
学习STM32单片机,个人认为重点应该放在它的库上,掌握了库的使用,也就掌握了STM32。
配置寄存器?内部结构?时钟树?算了,新手根本看不懂。
正确的学习方向应该是先使用芯片外设,熟悉之后,再回过头去看看芯片内部结构,以及寄存器。
很多人可能会好奇,如果听不懂理论,能不能付诸实践呢?
当然可以,只要调整一下库就可以了。调整一下库就可以使用所有的外设了。一般我需要用到外设的特殊功能或者遇到问题的时候都会查阅芯片手册。
如果你之前对51单片机没有任何了解,没有用51单片机做过一些项目的话,前期直接看示例程序肯定是看不懂的。
所以新手如果想快速掌握stm32开发的话,我个人推荐两个方向:
1. 使用开发板学习
市面上有很多开发板,比如Atom、Wildfire等,它们的配套教程也很齐全,相比较而言,个人觉得Wildfire更适合入门。
前期建议从STM32F103开始学习,买乞丐版的开发板就行,很多高端的其实只是为了让你显得高端,实际产品开发根本不会这样,成本太高了。
通过开发板来学习的好处是几乎可以学到所有外设,坏处是学完这些外设之后,可能还不知道怎么用这个芯片来做一个项目。
开发板的目的是让您快速入门并使用微控制器外设,而不管程序规格和架构如何。
2.通过项目学习
这也是我原来的学习方法,因为当时产品进度很紧张,根本没有足够的时间去系统的学习。
开发板我是直接在网上买的,主要是看重他们每个外设的例程,我的产品需要的所有东西都可以直接用上。
这种方法在以后的开发过程中会用到很多,而且效率很高。
因此我们无极单片机编程也设计了一款基于STM32的物联网网关产品供学生学习。
通过项目学习的好处是可以同时学习单片机和产品开发思维,可以学以致用。缺点是毕竟产品不会用到单片机的每一个外设。
不过即使是通过项目来学习,我还是建议买一块开发板,作为调试和实验的备用。
现在STM32的主流还是使用keil5进行编程开发,我个人是先用Notepad编辑代码,再用keil编译代码。
然而开发Notepad这个工具的公司后来却干了一些出格的事情,导致中国大陆很多工程师对这个工具进行谴责和鄙视。
还有一种是用IAR的,我曾经遇到一个老手用这个开发环境开发stm32的产品,据说编译出来的代码比较紧凑,占用内存也比较小。
但是编程软件并不是重点,重点是你的编程水平和你对微控制器的熟练程度。