1我的經(jīng)歷
我入門的單片機就是stm32。最初的想法是為了讓導師知道我確確實實在學習并且是有成效的。因為之前一直學習的是模擬電路。模擬電路的學習難度高,又很難做出理想的實物。所以我希望通過單片機來達成這一目的。我入門編程比較早并且學習過Java,對計算機體系,編程思維,有一個比較形象直觀的認識。所以在學習stm32開發(fā)時,我并沒有在寫代碼感到有多困難。我入門用的開發(fā)板是正點原子的戰(zhàn)艦f103板子,說實話我最開始聽原子歌講stm32也很痛苦。Stm32的知識體系比較龐大并且硬件功能繁多。很多時候就跟不上他的節(jié)奏,稀里糊涂就聽完了。既不會寫也無法理解為什么要這么做。之后我廣泛搜集資料,說實話我覺得我搜集資料的能力還是很強的,這在我之后做示波器時也體現(xiàn)出來了。發(fā)現(xiàn)野火的視頻不錯,深入淺出,實踐性極強。因為我手頭上只有戰(zhàn)艦的板子所以我只能把野火的程序移植到原子的板子上。正是這個強烈的需求和正確的方式方法,我在整個stm32的學習中,軟硬件都有了獨特,深刻的體會。
在學完stm32后,我迫切希望做一個東西,展示自己的學習成果。閆老師讓我去做示波器,具體名字叫模擬電路調(diào)試套裝。簡單說就是包含信號發(fā)生器和示波器的電路調(diào)試工具。當時并不知道這個東西有多難,只覺得一定要把這個東西做好。在野火的例程幫助下,簡易的正弦,方波,三角波信號發(fā)生功能做出來了。后來又去學了ADC采集找了個串口示波器,東拼西籌總算是把老師要求做出來了。雖然結(jié)果上是達到了設計目的,但是我感覺整個制作過程幾乎沒有我自己的東西。說實話我并沒有很興奮。
后來老師讓我去學習電路板制作,這又是一個我從來沒有接觸過的東西。在學長提供資料和我后續(xù)又找的資料的推動下,我學習完了電路板制作,說實話沒做過實物,心里沒底。閆老師鼓勵我動手去打板子,做板子需要學習,打板子也需要學習。我直接和制板廠的技術員溝通,雖然我什么都不懂,但是我對照下單流程一個一個詢問。雖然第一次PCB做出來失敗了,但是我對制作PCB的流程尤其深刻。為了把這個技能傳遞下去,老師讓我寫一個PCB制作文檔。這個可以說的上是我人生中制作的第一個正式的學習文檔。
由于stm32學的不踏實,我在寒假時間,報名硬禾學堂的示波器制作活動,也是歷經(jīng)很多困難,最后成功制作完成被官方認可。后面可能會單獨講講。有了以上這些基礎,我完成第一個團隊合作項目,我和學弟負責的制作物聯(lián)網(wǎng)傳感器的主從節(jié)點硬點電路制作。在這個過程中把PCB制作經(jīng)驗傳遞下去。學長負責物聯(lián)網(wǎng)系統(tǒng)架構(gòu)設計和軟件開發(fā)。
我感受到最重要的一點是,在正確的時間和正確的人完成重要且正確的事情,是極其有意義的。我的畢設是模擬信號發(fā)生器,老師并沒有限制我應該怎么做,我對照我的學習經(jīng)歷和商業(yè)信號發(fā)生器的功能,去做的畢設,包含上位機控制軟件,單片機信號發(fā)生和采集,底板信號調(diào)理電路組成。用到的技術,上位機軟件開發(fā),STM32程序開發(fā),信號處理(FFT),模擬電路設計,電路板制作,圖像處理,電路仿真。實現(xiàn)的功能只有,函數(shù)信號生成,掃頻功能,任意波形,串口通信,簡易示波器。這個畢設可以說把我這三年的實驗室學習經(jīng)歷全部用到了。
2 STM32的學習難點
經(jīng)過這么多的困難與考驗,我終于有底氣來談一談STM32如何入門。零基礎學習STM32的困難是STM32開發(fā)方式的簡易和STM32知識體系繁雜之間的矛盾。要明確一點學習stm32不容易,不是因為它難而是因為它知識點多。那解決辦法就很明確學習stm32時,不要指望聽過一遍就全部掌握,要注重回顧知識點,串聯(lián)知識點。更重要的是要多思考多動手,跟著教程一點一點寫,不要怕麻煩,stm32的大量理論如果不能轉(zhuǎn)化為實際的代碼,就會讓人產(chǎn)生畏懼心理。試圖做一個完整的項目,最好包含軟件和硬件,通過實踐來體會單片機在其中發(fā)揮的作用。知行合一,方能無往不勝。
3 stm32的概括
就我自己而言,總體上我會看這幾個方面。1.芯片的概要描述,有哪些外設,供電電壓,主頻。2.結(jié)構(gòu)框圖外設與時鐘總線的關系,即每個外設的時鐘來自哪里。不看時鐘樹是因為時鐘樹太復雜了。3.芯片的外設特征和數(shù)量。
局部我會看1.引腳的功能有哪些?2.不同型號芯片的引腳數(shù)量、編號3.外設的控制,數(shù)據(jù),狀態(tài)寄存器定義略看。
4.stm32快速應用
學會使用廠商提供的參考歷程。比如戰(zhàn)艦光盤資料、stm32固件庫里的參考例程。另一個就是移植別人的代碼在自己的開發(fā)板上。例如,多功能按鍵驅(qū)動、軟件定時器、GUI菜單、濾波算法等。通過這些東西來快速熟悉嵌入式系統(tǒng)的開發(fā)。
利用仿真器去調(diào)試程序,單步執(zhí)行、全速執(zhí)行、打斷點等。給程序加調(diào)試信息輸出到串口。
動態(tài)的觀察程序執(zhí)行流程,與設計的是否一致。學會版本管理留下處于不同階段的程序,以便回朔與救災。同時也可在確定版本基礎上進行不同方向設計想法的嘗試。
5.工具鏈
STM32CUBEMX圖形化配置工具
understand代碼解析工具
MDK寫程序
串口調(diào)試工具
STlink/Jlink仿真器
示波器/邏輯分析儀
其他到的工具與具體的細分領域有關,這里就不寫了。
審核編輯:湯梓紅
-
單片機
+關注
關注
6037文章
44562瀏覽量
635914 -
示波器
+關注
關注
113文章
6259瀏覽量
185156 -
STM32
+關注
關注
2270文章
10904瀏覽量
356364
發(fā)布評論請先 登錄
相關推薦
評論