1我的經(jīng)歷
我入門的單片機(jī)就是stm32。最初的想法是為了讓導(dǎo)師知道我確確實(shí)實(shí)在學(xué)習(xí)并且是有成效的。因?yàn)橹耙恢睂W(xué)習(xí)的是模擬電路。模擬電路的學(xué)習(xí)難度高,又很難做出理想的實(shí)物。所以我希望通過單片機(jī)來達(dá)成這一目的。我入門編程比較早并且學(xué)習(xí)過Java,對計(jì)算機(jī)體系,編程思維,有一個(gè)比較形象直觀的認(rèn)識(shí)。所以在學(xué)習(xí)stm32開發(fā)時(shí),我并沒有在寫代碼感到有多困難。我入門用的開發(fā)板是正點(diǎn)原子的戰(zhàn)艦f103板子,說實(shí)話我最開始聽原子歌講stm32也很痛苦。Stm32的知識(shí)體系比較龐大并且硬件功能繁多。很多時(shí)候就跟不上他的節(jié)奏,稀里糊涂就聽完了。既不會(huì)寫也無法理解為什么要這么做。之后我廣泛搜集資料,說實(shí)話我覺得我搜集資料的能力還是很強(qiáng)的,這在我之后做示波器時(shí)也體現(xiàn)出來了。發(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)試套裝。簡單說就是包含信號(hào)發(fā)生器和示波器的電路調(diào)試工具。當(dāng)時(shí)并不知道這個(gè)東西有多難,只覺得一定要把這個(gè)東西做好。在野火的例程幫助下,簡易的正弦,方波,三角波信號(hào)發(fā)生功能做出來了。后來又去學(xué)了ADC采集找了個(gè)串口示波器,東拼西籌總算是把老師要求做出來了。雖然結(jié)果上是達(dá)到了設(shè)計(jì)目的,但是我感覺整個(gè)制作過程幾乎沒有我自己的東西。說實(shí)話我并沒有很興奮。
后來老師讓我去學(xué)習(xí)電路板制作,這又是一個(gè)我從來沒有接觸過的東西。在學(xué)長提供資料和我后續(xù)又找的資料的推動(dòng)下,我學(xué)習(xí)完了電路板制作,說實(shí)話沒做過實(shí)物,心里沒底。閆老師鼓勵(lì)我動(dòng)手去打板子,做板子需要學(xué)習(xí),打板子也需要學(xué)習(xí)。我直接和制板廠的技術(shù)員溝通,雖然我什么都不懂,但是我對照下單流程一個(gè)一個(gè)詢問。雖然第一次PCB做出來失敗了,但是我對制作PCB的流程尤其深刻。為了把這個(gè)技能傳遞下去,老師讓我寫一個(gè)PCB制作文檔。這個(gè)可以說的上是我人生中制作的第一個(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è)過程中把PCB制作經(jīng)驗(yàn)傳遞下去。學(xué)長負(fù)責(zé)物聯(lián)網(wǎng)系統(tǒng)架構(gòu)設(shè)計(jì)和軟件開發(fā)。
我感受到最重要的一點(diǎn)是,在正確的時(shí)間和正確的人完成重要且正確的事情,是極其有意義的。我的畢設(shè)是模擬信號(hào)發(fā)生器,老師并沒有限制我應(yīng)該怎么做,我對照我的學(xué)習(xí)經(jīng)歷和商業(yè)信號(hào)發(fā)生器的功能,去做的畢設(shè),包含上位機(jī)控制軟件,單片機(jī)信號(hào)發(fā)生和采集,底板信號(hào)調(diào)理電路組成。用到的技術(shù),上位機(jī)軟件開發(fā),STM32程序開發(fā),信號(hào)處理(FFT),模擬電路設(shè)計(jì),電路板制作,圖像處理,電路仿真。實(shí)現(xiàn)的功能只有,函數(shù)信號(hào)生成,掃頻功能,任意波形,串口通信,簡易示波器。這個(gè)畢設(shè)可以說把我這三年的實(shí)驗(yàn)室學(xué)習(xí)經(jīng)歷全部用到了。
2 STM32的學(xué)習(xí)難點(diǎn)
經(jīng)過這么多的困難與考驗(yàn),我終于有底氣來談一談STM32如何入門。零基礎(chǔ)學(xué)習(xí)STM32的困難是STM32開發(fā)方式的簡易和STM32知識(shí)體系繁雜之間的矛盾。要明確一點(diǎn)學(xué)習(xí)stm32不容易,不是因?yàn)樗y而是因?yàn)樗R(shí)點(diǎn)多。那解決辦法就很明確學(xué)習(xí)stm32時(shí),不要指望聽過一遍就全部掌握,要注重回顧知識(shí)點(diǎn),串聯(lián)知識(shí)點(diǎn)。更重要的是要多思考多動(dòng)手,跟著教程一點(diǎn)一點(diǎn)寫,不要怕麻煩,stm32的大量理論如果不能轉(zhuǎn)化為實(shí)際的代碼,就會(huì)讓人產(chǎn)生畏懼心理。試圖做一個(gè)完整的項(xiàng)目,最好包含軟件和硬件,通過實(shí)踐來體會(huì)單片機(jī)在其中發(fā)揮的作用。知行合一,方能無往不勝。
3 stm32的概括
就我自己而言,總體上我會(huì)看這幾個(gè)方面。1.芯片的概要描述,有哪些外設(shè),供電電壓,主頻。2.結(jié)構(gòu)框圖外設(shè)與時(shí)鐘總線的關(guān)系,即每個(gè)外設(shè)的時(shí)鐘來自哪里。不看時(shí)鐘樹是因?yàn)闀r(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固件庫里的參考例程。另一個(gè)就是移植別人的代碼在自己的開發(fā)板上。例如,多功能按鍵驅(qū)動(dòng)、軟件定時(shí)器、GUI菜單、濾波算法等。通過這些東西來快速熟悉嵌入式系統(tǒng)的開發(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)注
6023文章
44388瀏覽量
628895 -
示波器
+關(guān)注
關(guān)注
113文章
6115瀏覽量
183485 -
STM32
+關(guān)注
關(guān)注
2260文章
10831瀏覽量
352711
發(fā)布評論請先 登錄
相關(guān)推薦
評論