0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎么學(xué)習(xí)單片機(jī)外設(shè)

GReq_mcu168 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 2020-05-07 14:51 ? 次閱讀

單片機(jī)現(xiàn)在水平只能說(shuō)會(huì),想在外設(shè)上多多學(xué)習(xí)下,手里面只有開(kāi)發(fā)板,請(qǐng)問(wèn)大家有沒(méi)有什么好的方法?目前基礎(chǔ)知識(shí)只有C 會(huì)單片機(jī) 數(shù)電懂點(diǎn),模電沒(méi)看過(guò),電路還沒(méi)有開(kāi)課。

WE胃:

1、學(xué)會(huì)看時(shí)序圖

2、學(xué)會(huì)各種通訊協(xié)議(典型的有I2C、SPI等)

3、學(xué)會(huì)看datasheet(要求有一定的英語(yǔ)閱讀能力)

4、根據(jù)datasheet設(shè)計(jì)外圍電路

5、根據(jù)datasheet寫程序。

閼男秀:

我來(lái)分享一下自己的學(xué)習(xí)歷程,比較偏重于軟件,希望能幫到題主以及其他正在學(xué)習(xí)的同學(xué)。

==================================================================

我是直接使用了單片機(jī)學(xué)習(xí)板,在某寶上面購(gòu)買的,然后送了一大堆資料,現(xiàn)在都準(zhǔn)備畢業(yè)了,我居然還沒(méi)有把所有外設(shè)都玩一遍,真是揪心!

雖然題主只是問(wèn)了怎么學(xué)習(xí)單片機(jī)外設(shè),但我認(rèn)為,外設(shè)的學(xué)習(xí)與單片機(jī)的片上資源同時(shí)學(xué)習(xí)最好,給自己一個(gè)項(xiàng)目題目然后動(dòng)手去寫代碼是最好的。單片機(jī)的片上資源就是那些IO口,定時(shí)器/計(jì)數(shù)器,ADC等等。

我想給出以下學(xué)習(xí)建議:

一、基礎(chǔ)知識(shí)一定要學(xué)好;

二、分模塊學(xué)習(xí);

三、做完一個(gè)項(xiàng)目一定要總結(jié);

四、學(xué)通了一種單片機(jī),再學(xué)習(xí)其他的單片機(jī)就會(huì)上手很快的,學(xué)習(xí)外設(shè)同理;

五、學(xué)會(huì)移植(抄)程序。

======================================

一、基礎(chǔ)知識(shí)

技術(shù)性的東西學(xué)習(xí)起來(lái)都是一層一層的,如果前面的基礎(chǔ)知識(shí)如果沒(méi)有學(xué)好,到了后面的學(xué)習(xí)會(huì)讓你懵懵懂懂,最后會(huì)走很多彎路。

對(duì)外設(shè)的學(xué)習(xí),可以從兩方面來(lái)看,一個(gè)是單片機(jī)與外設(shè)的電路圖連接,這是硬件方面;另一個(gè)是軟件方面,如何用軟件控制這個(gè)外設(shè)。例如:

這是一個(gè)LED流水燈模塊,你至少要從電路圖上知道以下信息

1、LED燈D1到D8分別連接到了單片機(jī)的P1.0到P1.7引腳;

2、當(dāng)你把其中一個(gè)引腳置零,相應(yīng)的LED燈就會(huì)亮。

這是讀電路圖的能力,是最基礎(chǔ)的也是最重要的。

然后是例程,點(diǎn)亮一個(gè)LED燈。

#include《reg52.h》 sbit LED=P1^0; void main (void) { LED=0; while (1); }

1、為什么要包含reg52.h?里面有什么內(nèi)容?

2、sbit是什么意思?是標(biāo)準(zhǔn)C里的關(guān)鍵字還是keil C里的關(guān)鍵字?為什么要寫這一條語(yǔ)句?

3、為什么最后要加while死循環(huán)?

……

初學(xué)的時(shí)候一般是不會(huì)問(wèn)自己這些問(wèn)題的,我自己學(xué)的時(shí)候都沒(méi)有問(wèn)過(guò)自己這些問(wèn)題。但是這些知識(shí)點(diǎn)恰恰卻是基礎(chǔ),或者說(shuō)學(xué)習(xí)時(shí)的盲點(diǎn)。

關(guān)于基礎(chǔ)我就不多寫了,點(diǎn)到即止。

二、分模塊

不多說(shuō)了,我直接上我的學(xué)習(xí)資料的圖片吧,買了學(xué)習(xí)板后客服送的資料挺好的。

可以說(shuō),這些都是外設(shè)。把每一個(gè)模塊的電路圖分析一遍,再把代碼分析一遍。真是夠大學(xué)玩四年的了。對(duì)了,光看資料是不夠的,因?yàn)橘Y料是非常凌亂的,你根本不知道從哪開(kāi)始看,這個(gè)時(shí)候就很有必要買一本關(guān)于單片機(jī)的書(shū),因?yàn)橹v技術(shù)的書(shū)籍都是整理好的,你做什么模塊,就看那一章節(jié),邊做實(shí)驗(yàn)邊看書(shū)邊看資料,學(xué)習(xí)是非??斓摹_@種方法不一定適合每一個(gè)人,但是至少我就是這么過(guò)來(lái)的。

熟悉完幾個(gè)模塊后,可以嘗試把這幾個(gè)模塊組合起來(lái),給自己一個(gè)小項(xiàng)目做。比如我就試過(guò)用DS1302(一種時(shí)鐘芯片)和LCD1602做過(guò)一個(gè)LCD日歷+時(shí)鐘。

三、總結(jié)

一定要總結(jié)!

再?gòu)?qiáng)調(diào)一遍!一定要總結(jié)!

把你用到的技術(shù),對(duì)電路圖的分析,對(duì)代碼的分析用文字描述出來(lái)??偨Y(jié)不需要逐字逐字的打,可以拷貝資料里的文字以及代碼等等,但一定要先理解透徹,如果沒(méi)有理解透,請(qǐng)不要把那些文字拷貝到你的總結(jié)里,又不是為別人寫什么文章,只是為自己而學(xué)。(像點(diǎn)亮LED這種簡(jiǎn)單的項(xiàng)目就不用總結(jié)了。..)

如果不知道總結(jié)要寫什么,可以參考大學(xué)里的單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū)或者實(shí)驗(yàn)報(bào)告。我一直覺(jué)得,寫那些實(shí)驗(yàn)報(bào)告和課程設(shè)計(jì)報(bào)告真是最好的學(xué)習(xí)方法?。】赡芤院蟪鰜?lái)工作再也不用寫實(shí)驗(yàn)報(bào)告或者課程設(shè)計(jì)論文了。

我們的實(shí)驗(yàn)報(bào)告是這樣的:

1、實(shí)驗(yàn)?zāi)康?/p>

2、實(shí)驗(yàn)內(nèi)容

3、儀器、設(shè)備和材料

4、實(shí)驗(yàn)原理(用到了什么芯片,什么外設(shè))

5、實(shí)驗(yàn)步驟

6、實(shí)驗(yàn)結(jié)果(代碼)

7、注意事項(xiàng)

如果是自己寫的總結(jié),最重要的就是4,其他什么的都可以不寫。把用到的芯片、外設(shè)、電路圖和代碼整理總結(jié)一下,對(duì)這些技術(shù)的理解就會(huì)非常深刻的。注意事項(xiàng)可以寫一些做實(shí)驗(yàn)中為什么卡住的技術(shù)難題,或者很多資料都沒(méi)寫,自己發(fā)現(xiàn)的技術(shù)細(xì)節(jié)。比如紅外NEC協(xié)議:

這是NEC協(xié)議的典型脈沖鏈,一開(kāi)頭有一個(gè)9ms的高電平,和4.5ms的低電平,接下來(lái)是用戶碼和數(shù)據(jù)碼等等。但是,在紅外接收頭那一端,這些信號(hào)是相反的。也就是說(shuō),紅外接收頭輸出信號(hào)的那個(gè)引腳,在沒(méi)有信號(hào)的時(shí)候輸出高電平,當(dāng)接收到信號(hào)后會(huì)輸出一個(gè)9ms的低電平和4.5ms的高電平,接下來(lái)是取反的數(shù)據(jù)碼等等。

一開(kāi)始學(xué)習(xí)的時(shí)候不一定會(huì)注意到這些細(xì)節(jié),以為只要例程跑起來(lái)了,看懂了例程代碼和電路圖就算學(xué)會(huì)了。不是這樣的!我曾經(jīng)為老師調(diào)試過(guò)這個(gè)紅外協(xié)議,為了優(yōu)化紅外接收的穩(wěn)定性和精確性,差不多調(diào)試了一個(gè)半月(其實(shí)也就每星期就花8、9小時(shí)吧?記不清了)。最后項(xiàng)目結(jié)束后一總結(jié)起來(lái),發(fā)現(xiàn)了很多很多以前沒(méi)有注意到的知識(shí)點(diǎn)。(我怎么感覺(jué)我在強(qiáng)調(diào)參與項(xiàng)目的重要性呢?)

總之一定要總結(jié),不要偷懶。

我現(xiàn)在就正在嘗試總結(jié)IIC,SPI,UART這些總線協(xié)議。有些技術(shù)知識(shí)一總結(jié)了之后,我就會(huì)發(fā)現(xiàn)了好多調(diào)試程序的時(shí)候?qū)W不到的知識(shí)點(diǎn)。比如SPI,我用它的時(shí)候就只是很簡(jiǎn)單的移植程序(在某寶買回來(lái)的模塊,客服都會(huì)順便把例程給你了),看懂了例程,然后就可以按自己的想法修改程序了,根本沒(méi)吃透SPI,但是對(duì)SPI有了一個(gè)感性的認(rèn)識(shí),回過(guò)頭來(lái)再總結(jié),聯(lián)想自己做項(xiàng)目遇到的技術(shù)難題,就會(huì)發(fā)現(xiàn)是某個(gè)知識(shí)點(diǎn)不知道從而下不了手而已。另外,不一定要做完項(xiàng)目后才總結(jié),查資料的時(shí)候就可以開(kāi)始總結(jié)了。再說(shuō)一遍,我說(shuō)的總結(jié)寫起來(lái)很簡(jiǎn)單,就是把你分析過(guò)的,理解透的相關(guān)技術(shù)資料用新的word文檔組織起來(lái)。

四、一通百通

我認(rèn)為,只要你精通了一種單片機(jī),再學(xué)習(xí)其他單片機(jī)是非??斓?,學(xué)習(xí)外設(shè)同理,學(xué)習(xí)其他東西也是一樣的。

還是幫老師做項(xiàng)目的時(shí)候(真心覺(jué)得多參與項(xiàng)目收獲是非常多的),用到了LCD12864,后來(lái)我發(fā)現(xiàn)LCD12864和LCD1602的指令是類似的,而1602我之前就用它做過(guò)一個(gè)時(shí)鐘,于是使用LCD12864的時(shí)候我非常的有信心。而且,我也是在使用1602的時(shí)候,加深了「對(duì)芯片的操作本質(zhì)上是對(duì)寄存器的操作」這句話的理解。除了二極管、數(shù)碼管、蜂鳴器這些分立元件,其他諸如液晶顯示屏、外部存儲(chǔ)器(24C02)、DS1302等等這些有芯片的外設(shè),本質(zhì)上都是對(duì)寄存器的操作。

所以不用擔(dān)心以后玩其他的模塊需要重新學(xué)習(xí),那些外設(shè)或者說(shuō)模塊,都是有一定的標(biāo)準(zhǔn)的。就比如LCD液晶模塊,我只是稍微接觸過(guò)LCD1602,之后上手LCD12864是非??斓?,而且那個(gè)LCD12864沒(méi)有例程,需要自己寫程序,只有初始化程序需要修改下,然后其他的驅(qū)動(dòng)程序我都是直接移植1602的了。

五、學(xué)會(huì)移植

上面剛剛也引出了第五點(diǎn),學(xué)會(huì)移植程序。51單片機(jī)真的是在行業(yè)內(nèi)玩爛了的單片機(jī),幾乎每一個(gè)電類專業(yè)都會(huì)學(xué),所以如果你想用51控制任何外設(shè),在網(wǎng)上基本能找到很多資料和程序,很多程序不需要自己重頭寫的,這就是一個(gè)很好的機(jī)會(huì)去理解外設(shè)的工作原理和程序。當(dāng)你不用51作為主控芯片的時(shí)候,或者使用了類似的外設(shè)時(shí),直接移植之前的程序就可以了。

======================================================

一些題外話:

實(shí)際上我想強(qiáng)調(diào)的就是以下幾點(diǎn):

一、基礎(chǔ);

二、分模塊(分成小目標(biāo)學(xué)習(xí));

三、總結(jié);

四、先精通一種;

不止這樣學(xué)習(xí)單片機(jī)比較好的,學(xué)習(xí)任何東西都可以這樣做的。

那些看時(shí)序圖、看datasheet的能力,我覺(jué)得可以在寫總結(jié)的時(shí)候提高一下。會(huì)看datasheet是工程師一項(xiàng)基本能力,我想問(wèn),玩了51那么久了,看過(guò)51的datasheet么?沒(méi)看過(guò)?可以馬上去看??!會(huì)看了51的datasheet,也就會(huì)看其他芯片的datasheet了(一通百通)。

由于本人比較偏軟,硬件方面我就只能稍微提及一下了。一開(kāi)始的時(shí)候,最主要的是學(xué)會(huì)分析電路圖。比如:

這是學(xué)習(xí)板上的DS1302模塊電路圖。

1、從電路圖中可以看出是用單片機(jī)的哪兩個(gè)引腳控制該模塊?

2、晶振在電路圖中有什么作用?

3、電容C12有什么作用?

……

分析了電路圖,就會(huì)明白其中的原理,需要設(shè)計(jì)的時(shí)候就會(huì)信手拈來(lái),或者看datasheet來(lái)設(shè)計(jì)電路圖時(shí),就會(huì)知道為什么要這樣設(shè)計(jì)。這里我只強(qiáng)調(diào)一個(gè)詞:原理。至于什么畫電路圖的,畫PCB的我就不提了。

最后,畢竟我還只是學(xué)生,還沒(méi)有開(kāi)始工程師的職業(yè)生涯,如果有不好的地方請(qǐng)前輩們指正并多多包涵。

路明:

學(xué)習(xí),就是看書(shū),做實(shí)驗(yàn),把學(xué)的用起來(lái),

切記,一定要多逛論壇

大屌都在里面

wyf:

外設(shè)的話有一點(diǎn)建議。土豪的話自己弄一套裝備,比如萬(wàn)用版,焊錫,焊筆,萬(wàn)用表邏輯分析儀。然后常見(jiàn)器件買個(gè)一打,自己折騰折騰。要是不想花錢,電腦上是可以用單片機(jī)跑仿真的,搭好電路,下好程序就可以跑跑。但是不太直觀。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635301
  • 時(shí)序圖
    +關(guān)注

    關(guān)注

    2

    文章

    58

    瀏覽量

    22444

原文標(biāo)題:怎么學(xué)習(xí)單片機(jī)外圍器件?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    十天學(xué)會(huì)單片機(jī)可能嗎?單片機(jī)入門需要多久?

    學(xué)習(xí)單片機(jī)的過(guò)程,就像學(xué)習(xí)任何其他技能一樣,不僅在于書(shū)本上的知識(shí),更在于實(shí)踐和應(yīng)用的能力。許多人可能會(huì)問(wèn):十天能學(xué)會(huì)單片機(jī)嗎?答案是:可以,但這取決于你所定義的“學(xué)會(huì)”到什么程度。首先
    的頭像 發(fā)表于 09-05 08:00 ?1044次閱讀
    十天學(xué)會(huì)<b class='flag-5'>單片機(jī)</b>可能嗎?<b class='flag-5'>單片機(jī)</b>入門需要多久?

    stm32單片機(jī)用什么軟件編程

    STM32單片機(jī)是一種廣泛應(yīng)用于嵌入式系統(tǒng)領(lǐng)域的微控制器,具有高性能、低功耗、豐富的外設(shè)接口等特點(diǎn)。要對(duì)STM32單片機(jī)進(jìn)行編程,需要選擇合適的軟件工具。 概述 STM32單片機(jī)
    的頭像 發(fā)表于 09-02 10:16 ?1346次閱讀

    stm32和51單片機(jī)的區(qū)別是什么

    架構(gòu)差異: STM32是基于ARM Cortex-M系列內(nèi)核的32位微控制器,具有更高效的處理能力和更豐富的外設(shè)。 51單片機(jī)是基于8051內(nèi)核的8位微控制器,處理能力相對(duì)較低,外設(shè)也相對(duì)有限
    的頭像 發(fā)表于 09-02 09:33 ?755次閱讀

    一個(gè)暑假如何學(xué)習(xí)單片機(jī)

    一個(gè)暑假是學(xué)習(xí)和掌握單片機(jī)基礎(chǔ)知識(shí)的良好時(shí)機(jī)。以下是一個(gè)關(guān)于如何在暑假期間學(xué)習(xí)單片機(jī)的建議計(jì)劃
    的頭像 發(fā)表于 07-03 09:19 ?528次閱讀
    一個(gè)暑假如何<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>單片機(jī)</b>

    stm32單片機(jī)學(xué)習(xí)路線

    STM32的寄存器編程可以幫助你更深入地了解單片機(jī)的工作原理和底層操作。通過(guò)編寫簡(jiǎn)單的程序,控制LED、讀取按鍵等基本操作來(lái)加深理解。 5.學(xué)習(xí)HAL庫(kù)和CubeMX:HAL庫(kù)是STM32提供
    發(fā)表于 05-10 15:34

    單片機(jī)學(xué)到什么程度可以找工作?

    找到工作,您需要達(dá)到一定的學(xué)習(xí)程度和技能水平。我們今天就來(lái)說(shuō)一說(shuō)究竟怎樣才能算是可以去找工作了。一些關(guān)于單片機(jī)學(xué)習(xí)程度和就業(yè)能力的建議了解單片機(jī)的基本原理,包括內(nèi)
    的頭像 發(fā)表于 03-28 08:04 ?1571次閱讀
    <b class='flag-5'>單片機(jī)</b>學(xué)到什么程度可以找工作?

    單片機(jī)開(kāi)發(fā)好學(xué)嗎?學(xué)習(xí)中有哪些樂(lè)趣與挑戰(zhàn)?

    一提到單片機(jī)學(xué)習(xí)大家都會(huì)覺(jué)得難學(xué),事實(shí)真的是這樣嗎?今天就來(lái)探討一些單片機(jī)學(xué)習(xí)的那點(diǎn)事兒。對(duì)于許多初學(xué)者來(lái)說(shuō),剛開(kāi)始接觸單片機(jī)編程可能會(huì)感到
    的頭像 發(fā)表于 03-28 08:04 ?1944次閱讀
    <b class='flag-5'>單片機(jī)</b>開(kāi)發(fā)好學(xué)嗎?<b class='flag-5'>學(xué)習(xí)</b>中有哪些樂(lè)趣與挑戰(zhàn)?

    新手學(xué)習(xí)單片機(jī)最常見(jiàn)的六大誤區(qū)!

    最近看到臺(tái)私信要資料的同學(xué)比較多,想必大家都是對(duì)單片機(jī)有著濃厚的學(xué)習(xí)興趣,但是很多新手開(kāi)始入門單片機(jī)的時(shí)候都會(huì)遇到一些學(xué)習(xí)的誤區(qū),今天就來(lái)整理一下大家可能會(huì)遇到的六大誤區(qū)。
    的頭像 發(fā)表于 03-28 08:03 ?854次閱讀
    新手<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>單片機(jī)</b>最常見(jiàn)的六大誤區(qū)!

    如何系統(tǒng)、科學(xué)地自學(xué)單片機(jī)?

    很多初學(xué)者都會(huì)面臨這個(gè)問(wèn)題,我想學(xué)習(xí)單片機(jī)、我也想學(xué)好單片機(jī)、我也想系統(tǒng)地學(xué)習(xí)單片機(jī),但是單片機(jī)
    的頭像 發(fā)表于 03-28 08:03 ?1090次閱讀
    如何系統(tǒng)、科學(xué)地自學(xué)<b class='flag-5'>單片機(jī)</b>?

    fpga和單片機(jī)誰(shuí)更難學(xué)

    FPGA和單片機(jī)各有其學(xué)習(xí)難度,具體哪個(gè)更難學(xué),很大程度上取決于個(gè)人的專業(yè)背景、學(xué)習(xí)目的和興趣。
    的頭像 發(fā)表于 03-27 14:28 ?1053次閱讀

    學(xué)習(xí)RISC-V單片機(jī)的感想

    從開(kāi)始學(xué)習(xí)單片機(jī)開(kāi)始,就沒(méi)有在單片機(jī)總線方面的知識(shí)投入什么精力。覺(jué)得就是為了應(yīng)用開(kāi)發(fā),沒(méi)必要了解底層架構(gòu)方面的知識(shí)。 現(xiàn)在可以選擇的單片機(jī)種類有很多,從最早的51
    發(fā)表于 02-17 21:00

    HC6800-ES V2.0單片機(jī)開(kāi)發(fā)板學(xué)習(xí)指南

    電子發(fā)燒友網(wǎng)站提供《HC6800-ES V2.0單片機(jī)開(kāi)發(fā)板學(xué)習(xí)指南.doc》資料免費(fèi)下載
    發(fā)表于 01-07 09:48 ?13次下載

    如何提升單片機(jī)開(kāi)發(fā)技術(shù)?

    學(xué)習(xí) 單片機(jī)開(kāi)發(fā)技術(shù)的基礎(chǔ)是電子電路原理和C語(yǔ)言編程。我們需要通過(guò)學(xué)習(xí)相關(guān)的教材和課程,加強(qiáng)對(duì)電子電路原理和C語(yǔ)言編程的掌握。只有扎實(shí)的基礎(chǔ)知識(shí),才能更好地進(jìn)行單片機(jī)開(kāi)發(fā)。 二、參與
    發(fā)表于 01-05 10:14

    STM32單片機(jī)的特點(diǎn)和功能是什么

    STM32單片機(jī)是一款基于ARM Cortex-M內(nèi)核的32位閃存微控制器,由STMicroelectronics公司(意法半導(dǎo)體)生產(chǎn)。STM32單片機(jī)具有高性能、低功耗、豐富的外設(shè)和易于開(kāi)發(fā)
    的頭像 發(fā)表于 01-03 15:33 ?1.2w次閱讀

    單片機(jī)程序讀取需要什么工具

    其他外設(shè)組成。開(kāi)發(fā)板上有豐富的引腳和接口,可以用于連接外部傳感器、顯示器、按鍵等外設(shè)。使用開(kāi)發(fā)板可以方便地調(diào)試和測(cè)試單片機(jī)程序,同時(shí)也能提供電源和時(shí)鐘信號(hào)。 編程器:編程器是用來(lái)將單片機(jī)
    的頭像 發(fā)表于 01-02 18:10 ?3880次閱讀