-
1 # Hulk飛哥
-
2 # 籟肆
本人學過51,工作後學的stm32。 開始學的是正點原子的板子(當時也狠心買了暫存器版和韌體庫版的書貴死了),但是不知道為什麼 有點聽得糊里糊塗的,各種外設暫存器,時鐘鎖相環ahb,apb那些。後來網上找課程對比一下 果斷轉去野火。野火的教程很詳細 細節做到位,通俗易懂。 前期聽著野火的教程配合著原子教程交叉學習 ,搞得差不多就可以各取所需了。以上是我的學習過程。一起努力加油吧。
-
3 # 怎麼名都有
建議先學習一下51把暫存器、定時器、中斷與外圍的電路知識搞懂再學STM32,我很久以前學過51,現在也正學32,也是正點原子的,感覺原子講的比較垃圾
-
4 # 跟著爸爸一起玩
在我看來學習STM32的目的無外乎是自己喜歡,或者轉到嵌入式研發領域工作(賺更多的)。
不同的目的,不同的學習經歷,學習MCU的方法也是不同的。如果選擇了錯誤的方法不但費時費力也極大打擊了自己的信心。
拿我自己舉例,20年前計算機應用專業畢業,學習了模點,數電,微型計算機原理,pascal高階語言,8086組合語言,資料結構,基本上從硬體到軟體以及簡單的演算法都學過了。在這個基礎上幹了2年硬體方面的工作後就開始了MCU的自學,從PIC的8位MCU開始。
這裡要說明一下,什麼是微控制器,什麼是MCU。現在我們普遍將兩者混為一談。其實微控制器是相對於早期的分立元件組成的微型計算機而言的,將RAM晶片,ROM晶片,CPU晶片,IO控制晶片等等都整合在一個晶片中的系統稱之為微控制器。而MCU則是微控制器,他是在微控制器的基礎上又整合各種各樣的功能到晶片內部,比如ADC,DAC,PWM,UART,I2C,SPI等等。賦予微控制器各種控制能力。
2000年那個時代網路很不發達,沒有學習影片可以看,但是相關的專業書籍還是不錯的。也是因為自己的專用基礎比較好所以學習起來並不是很吃力。此外,如果自己一開始就有用MCU實現某個功能的想法時,學習就不會很空洞,知道自己應該從哪裡開始。一開始就從彙編學習MCU的程式設計會讓人很難受,但這是最直接的一種方式,就像把MCU扒開來看,從最底層開始可以瞭解到最核心的內容。當你用這種方式掌握了一種MCU後就打開了通往所有MCU的大門,因為他們都是同類。
這20多年來,我也帶了不少新入的工程師。我給你一些建議,如果你是一個相關專業領域畢業的,至少在硬體或者軟體層面上沾點邊的,並且想進入這個領域賺大,那麼認認真真從最基本的開始學,從暫存器的每一個位的作用開始學,當然先確定要實現某個功能,然後看手冊來自己透過暫存器配置實現他,可以從最簡單的功能開始,比如流水燈。可以看書,看影片來輔助學習,但是不要用任何STM32的HAL庫,第三方的也罷,都不要用!等你直接用暫存器配置實現了之後再用庫函式實現一次,或者你實在無法自己用暫存器實現,那也可以先用庫來實現,然後一一比對自己的暫存器配置是哪裡沒有配置正確。總之一句話,絕對不要用庫!當你掌握了原理之後,想用什麼隨意!
與此不同的是,如果你只是興趣愛好,那麼你想用什麼方法都可以,你喜歡,你可以用最舒適的方法!
最後,告訴你一個無情的事實,找到一個樂於分享的大師高手比什麼都有效!
-
5 # 以前一直很安靜
自學的51,沒做過開發,但是會看datasheet。看了看stm32的hal開發,就象見到了寶。各種硬體的初始化都可以用stm32cube做了,極大提高了開發效率,能讓開發者專注於核心程式碼開發。要是兆易創新能做出一樣的功能,那中國產mcu的崛起指日可待。stm32學習先挑款全針腳引出的開發板,然後研究一下datasheet,學習是stm32cube的配置過程及生成程式碼框架,最後進行核心程式碼開發.
-
6 # 壹陸九八
微控制器的開發其實沒啥懂不懂的,關鍵就是你按照主晶片的開發手冊去把相關的功能配置好,讓功能實現。你得懂一些硬體,你得會讀並且讀懂晶片的英文開發手冊(用哪查哪,不可通篇閱讀),因為配置過程那是人家設計CPU的工程師事先給你規定好的,都寫在開發手冊裡。
微控制器這東西如果沒有跟著專案做的話,自己很難有方向,條件允許的話,建議買一個UART轉TTL工具(或者USB轉RS232,USB轉RS485)或者再買一塊51微控制器或者其他微控制器,先除錯微控制器的串列埠,把串列埠功能除錯好,把列印功能除錯好(這樣就能看程式碼執行過程中的列印資訊了,但也要學會單步除錯),再把兩塊微控制器的串列埠連起來相互通訊,因為很少有專案不用用串列埠的。
然後再除錯其他外設,像IIC,SPI,PWM基本都是公司專案中常用的外設,這些外設的配置資訊和驅動介面函式一定要除錯好,才能保證後期再連線其他模組出現更少問題。
剩下的就是上層應用了,一般來說,除錯底層驅動的過程更痛苦一些,但收貨會更大,因為涉及的硬體知識比較多。上層應用基本都是考你的C語言的功底和應用邏輯的分析能力了,只要做足夠全面的測試,一般產品出廠前都會規避很多風險和問題!
出現問題的時候,可以多搜尋一下網上的資源,基本好多問題都能找到解決方案。
最後,微控制器這條路會比較艱辛,一定要持之以恆,祝你成功!
-
7 # 嚮往生活的程式猿
如果完全沒有嵌入式基礎的話。第一步開啟最簡單的例程,點亮LED。然後找到點亮LED的程式碼,看是如何控制的。首先建立一個直觀的感受。單單學C語言是不夠的,要了解硬體。
-
8 # 多為DoWell
會了微控制器剛開始接觸確實有點困擾,掌握方法很重要,我的經驗是優先理解概念再深入,配合大量練習應該很快能入門了吧,學生時代就準備玩個兩年吧,工作估計幾個月就行了,現在手下四個人,個個都能玩stm32和linux。
-
9 # 林曦之靜月
正常。上學得時候學的51,畢業設計,為了高大上,自學32,做了一個飛行器,能飛,,32比51更廣,反正那時候年輕,天天泡圖書館,抱著筆記本看,窮啊,開發板也沒有,有基礎,能看的懂就好,一定要自己動手除錯,由簡開始,慢慢來。
-
10 # 匿名戶外
不知道你的基礎如何,也不知道你為什麼學STM32。從你的表述中,我覺得你與STM32之間差的不止是一門課程,也許是一個大學。我狠猶豫,我的回答也許會嚴重影響你的積極性。因為學習STM32你需要許多專業學科作為支撐。比如數位電子、類比電子、微機原理、組合語言、C語言等等。甚至將來你還會需要高等數學和數字訊號處理方面的知識。不過先別被這些嚇倒,因為只要你有興趣這些都不是問題。
就是論事,我們只說如何學習STM32。正確的學習方法十分重要。首先你要有一個開發板,很幸運我們同樣選擇了正點原子的開發板。其實我的開發板基本沒用過,放在那裡吃灰。但它依然很重要,因為它你有了正確的原理圖;有了正確的可執行程式碼;有了豐富的開發文件;有了自己的除錯環境。這些都是非常重要的參考。
接下來,你需要自己搭建電路,執行並學習開發板提供的例程程式碼。如果你還沒有能力自己繪製核心板,可以購買現成的核心板來用。下圖是我學習stm32時自己在洞洞板上搭建的電路板之一,核心板是自己繪製並焊接的。這一步十分重要,學習微控制器的關鍵就是要親自動手。如果你只是在別人的硬體上跑一遍別人的程式碼,你幾乎什麼都學不到。板子不用一步到位,學到什麼功能就搭建什麼電路。在這過程中,會遇到許多困難,你會困惑、彷徨甚至絕望,只有利用渾身解數解決這些問題,你才能真正的成長起來。
有了自己的硬體,接下來就是軟體部分的學習。按照原子的例程,做實驗,親自構建工程,親手輸入程式碼。由於STM32的複雜性,不可能一開始什麼都學會,先掌握IO口、中斷、定時器的基本運用。然後再學習一下串列埠、llC、SPI通訊。這些基本掌握後,找一個stm32的開源專案,並參與其中繼續提高自己。
回覆列表
我也是,剛開始的確是這樣,我是從51學過來的,然後學的正點原子的32,一開始學32非常的困難,後來我放慢了速度就好了,方法就是看影片前,自己先多幾遍看資料,看完影片試著做做總結,慢慢來,千萬彆著急。