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