為什么我學了幾天STM32感覺一臉茫然?
不知道你的基礎如何,也不知道你為什么學STM32。從你的表述中,我覺得你與STM32之間差的不止是一門課程,也許是一個大學。我狠猶豫,我的回答也許會嚴重影響你的積極性。因為學習STM32你需要許多專業學科作為支撐。比如數字電子、模擬電子、微機原理、匯編語言、C語言等等。甚至將來你還會需要高等數學和數字信號處理方面的知識。不過先別被這些嚇倒,因為只要你有興趣這些都不是問題。
就是論事,我們只說如何學習STM32。正確的學習方法十分重要。首先你要有一個開發板,很幸運我們同樣選擇了正點原子的開發板。其實我的開發板基本沒用過,放在那里吃灰。但它依然很重要,因為它你有了正確的原理圖;有了正確的可執行代碼;有了豐富的開發文檔;有了自己的調試環境。這些都是非常重要的參考。
接下來,你需要自己搭建電路,運行并學習開發板提供的例程代碼。如果你還沒有能力自己繪制核心板,可以購買現成的核心板來用。下圖是我學習stm32時自己在洞洞板上搭建的電路板之一,核心板是自己繪制并焊接的。這一步十分重要,學習單片機的關鍵就是要親自動手。如果你只是在別人的硬件上跑一遍別人的代碼,你幾乎什么都學不到。板子不用一步到位,學到什么功能就搭建什么電路。在這過程中,會遇到許多困難,你會困惑、彷徨甚至絕望,只有利用渾身解數解決這些問題,你才能真正的成長起來。
有了自己的硬件,接下來就是軟件部分的學習。按照原子的例程,做實驗,親自構建工程,親手輸入代碼。由于STM32的復雜性,不可能一開始什么都學會,先掌握IO口、中斷、定時器的基本運用。然后再學習一下串口、llC、SPI通訊。這些基本掌握后,找一個stm32的開源項目,并參與其中繼續提高自己。
我選擇了開源四軸飛行器。最開始通過學習國內匿名四軸的源代碼,了解了四軸飛控的基本原理。之后學習國外開源飛控betaflight的源碼,受益匪淺。下面是我自己的f4飛控板,運行的是自己編寫的飛控程序。在我的頭條視頻中,有它的飛行視頻。