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直流電機驅動)