1,一款实用的开发板。
这个是实验的基础,有时候软件仿真通过了,在板上并不一定能跑起来,而且有个开发板在手,什么东西都可以直观的看到,效果不是仿真能比的。但开发板不宜多,多了的话连自己都不知道该学哪个了,觉得这个也还可以,那个也不错,那就这个学半天,那个学半天,结果学个四不像。倒不如从一而终,学完一个在学另外一个。
2,两本参考资料,即《STM32 参考手册》和《Cortex-M3 权威指南》。
《STM32 参考手册》是 ST 出的官方资料,有 STM32 的详细介绍,包括了 STM32 的各种寄存器定义以及功能等,是学习 STM32 的必备资料之一。而《Cortex-M3 权威指南》则是对《STM32 参考手册》的补充,后者一般认为使用 STM32 的人都对 CM3 有了较深的了解,所以Cortex-M3 的很多东西它只是一笔带过,但前者对 Cortex-M3 有非常详细的说明,这样两者搭配,你就基本上任何问题都能得到解决了。
3,掌握方法,勤学慎思。
STM32 不是妖魔鬼怪,不要畏难,STM32 的学习和普通单片机一样,基本方法就是:
a) 掌握时钟树图。
任何单片机,必定是靠时钟驱动的,时钟就是单片机的动力,STM32 也不例外,通过时钟树,我们可以知道,各种外设的时钟是怎么来的?有什么限制?从而理清思路,方便理解。
b) 多思考,多动手。
所谓熟能生巧,先要熟,才能巧。如何熟悉?这就要靠大家自己动手,多多练习了,光看/说,是没什么太多用的,很多人问我,STM32 这么多寄存器,如何记得啊?回答是:不需要全部记住。我至今也就只记得 STM32 的 IO 口控制这几个寄存器,因为有规律可循,好记。其他的一概不记得。学习 STM32,不是应试教育,不需要考试,不需要你倒背如流。你只需要知道这些寄存器,在哪个地方,用到的时候,可以迅速查找到,就可以了。完全是可以翻书,可以查资料的,可以抄袭的,不需要死记硬背。掌握学习的方法,远比掌握学习的内容重要的多。
熟悉了之后,就应该进一步思考,也就是所谓的巧了。
跟着例程走,无非就是熟悉 STM32 的过程,只有进一步思考,才能更好的掌握 STM32,也即所谓的举一反三。例程是死的,人是活的,所以,可以在例程的基础上,自由发挥,实现更多的其他功能,并总结规律,为以后的学习/使用打下坚实的基础,如此,方能信手拈来。
最最重要的是刚开始一定要将不懂的或者一知半解的点都研究透彻,保证基础知识都扎实,后续的学习才能更好上手,而不至于越到后面,感觉越来越难,开始打退堂鼓。
在应用的时候,先去了解电子元器件的电气特性,电路原理图,然后根据原理画出电路连接图,这样的顺序去学习嵌入式,才能更好的掌握。
如果仅仅只会驱动外部设备,不懂外部设备的运行原理,去编写代码的时候没有原理去依靠,编写代码可能会长时间卡在调试阶段,还有就是如果要去优化,在嵌入式方向的优化,不仅仅只有算法这一方面,最好的优化其实是是根据设备的电气特性以及工作原理去做驱动上的优化。
为大家分享一些学习资料
(stm32 USART串口应用)
http://www.makeru.com.cn/live/1392_1164.html?s=45051
从单片机到嵌入式linux我们需要做什么
http://www.makeru.com.cn/live/5413_1994.html?s=45051
PWM脉宽调制技术
http://www.makeru.com.cn/live/4034_2146.html?s=45051
基于STM32讲解串口操作
http://www.makeru.com.cn/live/1758_490.html?s=45051
通过Z-stack协议栈实现串口透传
http://www.makeru.com.cn/live/1758_330.html?s=45051
(stm32直流电机驱动)
http://www.makeru.com.cn/live/1392_1218.html?s=45051