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