首頁>Club>
7
回覆列表
  • 1 # 琪浩電子攻城獅

    身為一個電子工程師來說,我使用32位的微控制器(主要是STM32)已經有10年的時間了。不要糾結是8位微控制器還是32位單片,位數對開發工程師無關痛癢,那一層的難題已經被編譯器給處理了。學習的時候也走了很多彎路,現在我就說下我的想法。

    初次學習的時候什麼也不懂,遇上個問題就能卡半天,都是硬著頭皮頂過來的。想當年建立個stm32的工程就花了差不多一週的時間,但是建51的工程就是分分鐘的事啊,所以感覺起來stm32比51難不少。後來想想完全沒有必須要學怎麼建工程,做了不少無用功啊。因為這十年走來我再也沒有建過工程,每次都是使用建好的工程模板。所以我認為初學的時候也就沒必要學建工程了。可以直接拿個閃爍燈的工程進行修改操作。學習的時候也不用太扣字眼,比如說IO口的高低電平操作,只要會用了就行。程式界有句名言叫"不要反覆造輪子",意思就是說別人造好的輪子可以直接拿來用,不要自己做重複的工作。等對晶片瞭解差不多,再深入的時候可以再去研究輪子是怎麼造的。

    學習的時候千萬不要從頭到尾的學,因為現在單片功能太多。學是學不完的,而且技術這東西你要是不用的話時間稍微一長久會忘掉。我覺得工作這10年,用到的功能連30%都不到。無非就是IO、UART、Timer、ADC、DMA等模組,其它通訊IIC,SPI等全部用IO口模擬。而且很多驅動程式當時只是瀏覽了一遍,瞭解了一下大體功能,感覺有用就複製下來了等用的時候直接複製貼上。有些別人提供好的驅動程式、例程等都可以直接拿來使用。能不自己敲程式碼就不要自己敲,要學會利用別人的程式。

    學微控制器就是學應用,能讓他跑起來就OK,其它的不要糾結太多。把簡單的學會了就有成就感,就越學越有勁,形成良性迴圈,成功就在眼前。

  • 2 # DZ科技

    個人建議:如果你重來沒有學過微控制器的知識,也沒有了解過,那麼我覺得你應該從8位微控制器開始學起,比較8位比較32位的要簡單許多,並能透過8位微控制器的學歷來理解微控制器的工作原理以及內部構造,雖然32位跟8位的有很多類似的地方,但是是存在明顯的差別;所以先把理論基礎弄紮實了,再學32位單片會容易很多,不然剛開始學就會遇到很多問題困難;當然如果你學習愛過8位得到微控制器,那麼現在學習32位單片會容易許多;

    目前8位微控制器在一般的電子產品中用的比較廣泛,比較便宜嘛,夠能也夠用;常見的品牌有51系列:以intel MCS51為核心,很多公司都買了它的核心,生產自己的51微控制器,主要有ATMEL公司(AT89S52等等),STC,ST都有生產。AVR系列:以ATMEL公司的ATmega16為代表。3、PIC系列:以MICROCHIP公司的PIC16F877為代表。還有臺灣品牌:合泰,松翰等,國內也有很多品牌比如當前比較流行的GD系列等;8為微控制器內部結構相對簡單些,主要包含:儲存器,序列口,並行口,定時器/計數器,中斷等;

    32微控制器就相對複雜些;在電子產品中應用也比較廣泛,功能稍微複雜些的控制系統大部分都在用;目前比較流行的品牌有,STM32系列,ARM系列,PIC32系列,AVR32系列,當然國內有GD32系列比其他國外品牌要便宜些;32位微控制器內部整合的功能就比較多了,有IO口,定時器,ADC,DAC,串列埠,I2C,DMA等一系列的外設結構,基本上涵蓋大部分常用的外設,用起來很方便功能很強大;

    所以,建議你有基礎就可以直接學32微控制器,沒基礎就從8位的開始,熟悉了再轉到32位微控制器上,網上賣的各類開發板都有,都會配套許多教程及例項,學起來相對容易些,希望你能早日行動起來,開始學習。

  • 3 # 強仔爆大料

    建議先看看微控制器的組合語言,瞭解微控制器的一些指令、中斷等,能夠寫出簡單的彙編程式(如果你實在是不喜歡彙編,個人覺得你最起碼要看懂別人寫的最簡單的帶定時器的流水燈程式,不用記指令,照著指令表看的那種)後再學C語言。當然如果要用32位微控制器的話,最好在c語言基礎上,再學c++,不過這是後話了,先入門再說。有什麼不懂的大家可以互相交流。

  • 4 # Eant實驗室

    無論是學習8位微控制器還是32位微控制器,正確的學習方式和心態都很重要。關於你提的問題,我有幾條建議:

    1、學習微控制器沒想象的那麼難,不要給自己太大的心理壓力。如果覺得32位微控制器入門難度比較大話,可以從8位的51微控制器入手。把8位微控制器的IO操作、定時器、中斷、串列埠等功能理解清楚之後,再學習32位微控制器就相對容易很多了。

    2、雖然入門不難,想學精通也並不容易。學習微控制器之前,最好能有一定的電路基礎,能對常見元器件有基本的認識,能看懂簡單的電路圖。數電模電的基礎知識對理解一些微控制器的相關概念很有幫助。

    3、學習微控制器要理論與實踐結合。初期可以買一套開發板,按照教程來理解示例程式的內容和程式設計風格,同時可以根據自己的想法修改程式,做一些有趣的小作品來獲得成就感激勵自己堅持下去。總之,學微控制器不是為了做題,一定要多思考,多敲鍵盤。

    4、學習微控制器不是個一蹴而就的過程,不少人把《從入門到精通》學成了《從入門到放棄》。學習過程中難免遇到困難,不要輕言放棄,一步一個腳印地堅持下去才能有大的收穫。

  • 5 # 愛上半導體

    32微控制器很好學習。

    我們研發的電子產品使用的就是32位微控制器。

    下面簡單說一下32位微控制器如何學習。

    8位微控制器

    在學習32位微控制器之前,建議你從8位微控制器開始學。

    透過暫存器的操作方式必須實現以下四種通訊。

    串列埠I2CSPI紅外遙控

    如果你掌握了以上四種通訊,那麼對於你學習32位微控制器也就遊刃有餘了。

    因為學習微控制器的路上比較難的也就通訊這點玩意兒,如果你把通訊都能搞懂,我說的是自己用暫存器一個一個去配置的那種,不參考任何東西。

    自己上來就能憑自己對這些通訊的理解獨立的完成。

    而且不單單要只會一種開發方,現在硬體條件都好了,可能我們實現串列埠、I2C這些,只需要配置暫存器就夠了,但是這並不能加深你對這些通訊的理解,如果可能、最好是自己再透過模擬IO口的方式把上述通訊模擬一遍。

    等你自己能模擬出來,你的任督二脈才會真正被打通。

    然後再去學習32位微控制器就很好學習了。

    32微控制器

    32位微控制器有兩種開發方式,一種是庫開發方式;另外一種是暫存器開發方式。

    暫存器開發方式我勸大家就不要去學習了,是因為32位微控制器一次性要配置很多位,會耗費我們大量的時間。

    基於此,官方把這些暫存器用C語言封裝起來,我們想要實現什麼功能,直接呼叫官方的庫就可以了,如果你熟悉了8位微控制器的開發,再轉來學習32位微控制器的庫開發方式,就非常容易學習了。

    因為大量的配置暫存器的工作都被官方封裝好了,我們直接拿來使用就可以了,而且對於各種模組的功能和通訊,官方都有例項,我們也可以直接拿來用,只需要改幾個引數,就可以實現我們的功能。

    甚至有的實現起來比8位微控制器還要快,因為8位微控制器還需要一位一位的去配置暫存器,而32位微控制器不需要。

    這就是為什麼32位微控制器好學習的原因。

    函式庫

    最後,沒事多看看32微控制器的函式庫。

  • 6 # 玩轉嵌入式

    不管是8位的微控制器,還是32位的微控制器,都是很容易學的。如果之前學過8位微控制器,有8位微控制器的基礎,那麼學習32位微控制器就更加容易了。即使沒有學過8位微控制器,直接學習32位微控制器也是可以的。在學習微控制器時需要掌握好方法。建議如下:

    1 儘快入手一塊合適的開發板

    微控制器是一門需要動手的技術,不像理科類課程只看書就好,而是需要大量的動手練習。學習微控制器包括微控制器電路圖的設計以及程式的設計,在學習的過程當中需要較多的硬體資源的支援。而最好的方法就是入手一塊微控制器開發板。微控制器開發板的核心一顆微控制器,設計了常用的外設電路,可以方便初學者學習,並且配套了較為豐富的例程和資料,大大提高了學習效率。所以,入手一塊開發板,跟著教程的步驟學習微控制器是很有必要的。

    2 從基本的GPIO口操作開始

    先從最簡單最基本的GPIO口的配置開始學習。微控制器有眾多的引腳,引腳和外設電路相連,透過控制微控制器引腳的狀態就能實現控制外設電路的目的。32微控制器的GPIO口可以配置為輸入或者輸出。比如以灌電流的方式驅動LED時,需要將與LED相連的引腳配置為輸出,並且將該引腳輸出為低電平即可讓LED點亮。與GPIO相關的外設電路有:流水燈、控制蜂鳴器發聲、控制繼電器動作、按鍵輸入檢測、驅動數碼管電路等。先從這些最基本的例程開始學習。

    3 熟悉微控制器的片上資源

    微控制器有很多片上資源,數量操作各片上資源可以實現很多複雜的功能。微控制器常用的片上資源有:定時器、中斷、AD轉換、PWM、UART、看門狗等。比如,微控制器透過NTC熱敏電阻採集環境溫度時就會用到AD轉換,將模擬量轉化為數字量,就可以實現溫度的採集,這在感測器行業非常常用。比如,用到RS485介面的通訊,就需要用到UART功能和RS485電平轉換晶片連線。學習板的例程裡都有各種資源的例程。對著微控制器的資料手冊好好研究片上資源是非常重要的。

    4 多動手、勤參與專案

    學習微控制器的目的是為了能用微控制器實現使用者的需求、設計出符合要求的產品。所以,一定要多動手,如果有專案可以練手的話一定要積極的參與進來。要學習需求的提煉、技術方案的設計、晶片選型以及硬體原理和程式的設計。也許一兩個專案下來,就能理解專案開發的流程。所以,參與專案是十分重要的。

    不同型號、不同廠家的微控制器都是相通的,學習方法都是一樣的。如果確定要學習微控制器,就要選定一個具體的型號去學習,開始學習起來了就感覺不到難了,反倒是一直在想不動手會把自己嚇得很難。

  • 7 # 科技電小二

    對於有一定的微控制器基礎,能夠熟練掌握51/avr微控制器開發的同學來說,32位微控制器,是比較好學的,因為不涉及linux。

    對於沒有微控制器開發基礎,甚至連C語言基礎和類比電路基礎很差的同學來說,那麼32位微控制器就十分難學。

    為什麼這麼說呢?

    32位微控制器,目前比較常見的是STM32,cortex-M3核心就是32位的普通微控制器,常見暫存器開發和韌體庫開發,需要使用C語言的結構體和指標。

    51微控制器的暫存器簡單很少,外設也簡單,簡單的程式碼就能實現功能各種簡單的功能,而32位微控制器的外設會比51微控制器更多,其配置過程更為繁瑣,32位微控制器的時鐘配置,時鐘樹的使能,比如乙太網,FSMC,SDIO等功能的使用。

    學習32位微控制器,或者說學習51微控制器,需要掌握解決BUG的能力,各類除錯過程,介面協議,外設晶片的介面時序等, 假如沒有任何基礎或者基礎薄弱,那麼連開發環境除錯過程都會出遇到各種問題。

    學習32位微控制器,如果沒有好的方法和思路,那麼也會很難學,需要掌握32位微控制器的時鐘樹,基本的開發流程,開發套件和平臺,從簡單到複雜循序漸進,再找一個老工程師,可以探討請教。

    想學好微控制器,不管是51微控制器還是32位微控制器,都需要努力和認真,不要想著短時間就能熟練掌握.一定要認真鑽研,對按鍵,led,串列埠接收發送等等都認真死磕到底,這樣,就能在後續的專案中,遊刃有餘。

  • 8 # 嵌入式經驗分享

    目前各大32位微控制器的廠家都提供了輔助開發工具,包括初始化程式碼視覺化生成器,已經方便很多了。

    藉助這些工具,參考這些程式碼,將極大地促進對微控制器控制流程的理解。

    例如,STM32就有STM32CubeIDE,既是整合開發環境,又內嵌了可以化程式碼生成器,真的很方便。具體用法請參考我的專題。

  • 9 # 每日精彩科技

    首先,我覺得這是一個非常好的問題,也是很多小白使用者困惑之處,下面我將根據自己的經驗認真回答這個問題。

    32位微控制器好學習嗎?這是一個很多人想知道答題的問題!

    參加2017年的32位微控制器程式設計競賽,參加競賽的最低年齡為14歲,而初級參賽組中最低年齡僅為8歲。所以應該問問自己多大了,應該明白自己不管學習或理解的能力如何,我認為學生只要肯努力,就一定能夠學好32位微控制器。

    1、萬事開頭難,只要肯下功夫就能夠學好32位微控制器:

    當我上小學時,三年級開始學習複雜的漢字,數學的四種混合運算,為了背誦一首古詩,自己前前後後不知道重複多少次,為了學好數學,也不知道我研究了多少數學問題。特別是在數學方面,考試中發放一張試卷,讓大家認真思考問題並最終寫下考試答案。

    鸚鵡學舌的故事大家都知道,因為對很多人來說,學習32位微控制器就是一個全新的世界,這和正在學習數學三年級的10歲孩子並沒有太大區別。

    可能有人會說程式設計是邏輯思維,這不是謊話。我們背誦舊詩,常常不清楚裡面蘊含的意思。短時間裡我們不需要知道,只需要記住就可以了。

    許多學生的錯誤是認為我們學任何東西都需要及時理解,因此他只是用眼睛看而不會複製。讀完這篇文章後,我感到自己在開玩笑,並描述了這個程式。第一步是讓您首先記住,然後理解。您甚至都不記得了解講解了什麼。只有您記住內容仍然保留在計算機上,因此,在進行後續培訓時,對消化的理解將變慢,但是事情的發展都有一個過程,學習32位微控制器也是同樣的道理。

    2、照葫蘆畫瓢是我們學習的必要方法:

    如果說中國的基礎教育,其次,沒人敢稱其為第一。會有任何反對者說這不是愚蠢的教導嗎?靜默編寫32位微控制器過程(每次編寫程式)是您必須瞭解該程式如何工作的過程,即更熟悉整體和程式設計的過程。這是比第一步重要得多的步驟。第一步就是簡單地重寫和重複。接下來的第二步是發現您對自己的問題一無所知。也就是說,你會發現有很多錯誤,您不知道將要做什麼,並且您不知道需要在哪裡特別注意該程式。

    只有真正做到這一點,您才能準確地找到不了解的地方,編寫程式的地方,容易出錯的地方。最初的沒有成功,我回過頭來找出了哪裡,不知道在哪裡,錯誤在哪裡,再次默默地寫了。這是一個驗證過程,可以幫助您發現缺陷。

    如果您只是學習而沒有自己的工作,那麼您永遠不會知道他們的問題在哪裡。

    3、他山之石可以攻玉,多借鑑學習很必要:

    大家應該記住,學習借鑑與ctrl+c和ctrl+V不同,借鑑必須仔細理解內容,在複製後進行無縫連線。為了實現無縫連線,您首先需要分析程式和課程之間的介面差異,然後在除錯後進行復制。同學經常複製我們的部分程式碼,然後說這很糟糕。除錯習慣不佳,除錯程式是每位工程師必不可少的經驗。

    4、理論與實踐相結合:

    我認為這部分學生應該很清楚,經常聽一些學生說每一種事物。至於實踐,正如我所說,實踐是檢驗真理的唯一標準,只有在實際操作中上完成戰鬥任務計程車兵才具有真正的戰鬥技能。只要學會把學到的東西付諸實踐,就一定能夠學好32位微控制器!

  • 10 # 超子說物聯網

    選擇一款合適的32位微控制器,掌握好正確的學習方法,就會很好學習。

    目前市面上熱門的32位微控制器,非STM32莫屬了,網上各種論壇以及開源的資料非常多,如此一來,能為我們的學習提供更多的幫助,超子提供一個學習路徑供您參考。

    1.C

    語言基本語法

    STM32需要使用C語言開發,所以首先要掌握C語言的基本語法,前期可以不必投入太多的精力,掌握基本的變數使用方法,while迴圈,for迴圈,if-else判斷,switch分支判斷,函式呼叫等基本知識,能看懂簡單的STM32開發板程式即可。循序漸進,防止過深的理論知識打擊學習興趣和自信心。

    2.準備一款合適STM32開發板

    STM32微控制器的學習,最終是要落到實際開發應用上的,單純的學習理論知識,或是看別人寫的程式是不行的。一定要動起手寫程式,實際的操作起來,所以根據自身情況,選擇一款合適的開發板,儘快上手動起來。

    3.準備一個模擬器

    程式是3分寫7分調,尤其是新手入門,程式開發經驗不足,雖然程式編譯正確,但是還是經常遇到程式無法達到預期結果的情況,因為編譯正確只是說明語法沒有問題,但是程式邏輯出問題的話,就會導致程式無法正常執行,經驗老手可能更多的使用串列埠除錯,但是新手學習還是建議準備一個模擬器,方便單步除錯程式。

    4.掌握微控制器開發的第一個程式

    目前微控制器程式的開發學習,多是從點亮第一個LED燈開始,程式非常簡單,但是麻雀雖小五臟俱全,雖然簡單,但是包含了整個程式執行的所有必要環節,專案工程的建立,如何向專案中新增檔案,如何包含標頭檔案,啟動過程,跳轉到main函式,以及最基本的IO配置,這些都是以後進行復雜功能學習的基礎。

    5.掌握微控制器常用外設

    微控制器串列埠,可以輸出各種程式內的訊息,方便我們追蹤程式。定時器,不管是哪個型號的微控制器,定時器都是必備的外設。中斷,微控制器處理非同步事件必備功能。IIC和SPI,目前主流的通訊介面和協議,很多的感測器,外部功能模組都會採用這兩種介面。

    還有AD,DC,PWM,DMA等等非常多的實用外設,可以循序漸進的掌握。

    6.勤動手,多試驗

    這點是最關鍵的,見過很多新手入門,喜歡看影片教程,開發板手冊,然後看別人寫的程式,也都能看懂,但是一到自己動手寫,腦子確是一片空白。所以大家一定要勤動手,多試驗。從簡單的功能開始,看懂別人的程式後,一定要自己動手把這個功能寫一遍,然後可以試著加入一些其他的功能,只有自己動手寫出來,才算掌握了這個知識點。

    總而言之,學習微控制器,多看多問多動手,尤其是多動手寫程式,是重中之重。

  • 中秋節和大豐收的關聯?
  • 如何看待《斗羅大陸》真人版演員列表?