記得我剛出來工作的時候,一直從事stc 51單片機產品的開發,後來接觸到了NXP的單片機。
一下從51過渡到ARM,確實讓我頭疼了一段時間,不過還好,都是配置寄存器去開發,至少開發模式是相同的,就是要看着數據手冊配置比較耗時間罷了。
後面領導要規劃一款新產品,讓我和硬件工程師配合去選一個單片機。
當時我還只是改別人代碼的水平,哪裡懂選型的東西,又不敢讓領導知道,就只能偷偷去請教大佬同事。
他在這家公司做了有3,4年了,對產品也很熟悉,他說可以用stm32的單片機來做。
就是那次開始,我正式接觸到單片機,乍一想,已經是8,9年前了。
不過當時,教程各方面沒現在這麼完善,我就在網上買了個開發板,是沒有配套視頻教程的。
因為我有單片機的基礎,所以我認為只要有每個外設的使用例程就可以了。
萬萬沒想到的是,打開那些外設例程的時候,讓我一臉茫然,這到底是什麼鬼東西?怎麼用GPIO點個燈這麼複雜。
又要加載庫文件,又要定義結構體,又要開啟時鐘。。。。。
開發模式完全跟我以前不一樣,後面研究了才知道stm32可以直接用官網提供的固件庫開發。
也就是直接調用他們的函數,就能把stm32的每個外設都用起來,不用去關心寄存器具體是怎麼配置的。
如果你深入到固件庫的代碼,會發現還有一些彙編和c語言混合寫的代碼。
如果新手沒經驗,很容易走彎路,最近我們無際單片機編程有個學員就是這樣。
他總是喜歡鑽牛角尖,什麼都想搞透,覺得自己如果不把庫函數搞透的話,以後產品開發碰到問題了不知道怎麼解決。
其實這種做法有好處也有壞處。
好處就是鑽牛角尖你能理解地更加深刻。
壞處就是他鑽的時機不對,當你編程水平還不足,產品經驗也不足的情況下,盲目去鑽研別人幾年沉澱出來的精華,明顯是不現實的,如果被你鑽研透了,你就真的是天才了!
現實大多數人都是普通人,都要遵循正確的方法去學習,這樣才能以最快的速度學會。
水平不夠的情況下去硬碰硬,最後只能讓自己遍體鱗傷,越學越迷茫,越學越焦慮,最後放棄。
學習STM32的重點應該是去學習他們的固件庫怎麼使用,先把庫用熟。
即便我做這個行業10年,你讓我不藉助例程,自己去調固件庫,自己通過寄存器去配置外設,我也做不到。
但是即便我做不到,依然不妨礙我用stm32單片機做產品。
所以,你知道作為一個工程師來說,重點在哪裡了吧?
重點根本不在單片機,單片機只是工具,我們第一步就是能把它用起來,而不是去深究它為什麼這麼用就能把外設開起來。
如果你去鑽這種牛角尖,光是stm32這個單片機都夠你學5-10年的了。
實際開發產品程序的時候,前期會花幾天時間把單片機外設開起來。
然後剩下大多數時間都是在寫產品功能邏輯部分的代碼,這個才是核心。
特別是像今年stm32價格突然暴漲10倍,一些公司會用一些別的芯片來替代。
試想一下,如果你把所有精力都放到學習單片機上去,那你的開發周期得多長,早都被老闆幹掉了。
不管學習任何一款單片機,核心都在於你的編程水平和思維。
就好比stm32這款單片機,他們的固件庫大量用了指針、結構體和枚舉。

這個時候即便你沒學過stm32,但是你熟練c語言的指針、結構體、枚舉這些,你大概都能看懂他們固件庫的底層邏輯。
如果你不熟c語言這些知識,或者找不到好的實用的教程,可以去看我的視頻教程,我對這3個知識點有專門的講解。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/216372.html