為什么大學(xué)單片機(jī)課上51+匯編,為什么不直接來(lái)STM32
為什么大學(xué)單片機(jī)課上51+匯編,為什么不直接來(lái)STM32(最好cube+hal)這樣更實(shí)用的?
即便再過(guò)幾十年,只要市面上還能買(mǎi)到51內(nèi)核的單片機(jī),教材都應(yīng)該堅(jiān)持51的課程
因?yàn)檫@個(gè)課程可以完整清晰地講明白單片機(jī)的內(nèi)部工作原理,對(duì)于理解計(jì)算機(jī)原理也大有裨益;我們可以回過(guò)頭去看看計(jì)算機(jī)原理這本書(shū),你看完之后絕對(duì)想象不到如何搭建一個(gè)CPU,學(xué)過(guò)數(shù)字電路,模擬電路等等其它電學(xué)課程都做不到能做一個(gè)處理器出來(lái)。唯獨(dú)學(xué)了51這個(gè)課程,你幾乎可以嘗試用門(mén)電路去搭建一個(gè)簡(jiǎn)單的單片機(jī);這對(duì)于我們工科學(xué)生而言,這種理解簡(jiǎn)直太重要了。
所以我認(rèn)為,51單片機(jī)是大學(xué)電學(xué)課程里面為數(shù)不多的精品課程。一定是不能拋棄的;除非可以找到同難度的替代課程
另外,題主覺(jué)得51可以自學(xué),說(shuō)明題主的理解能力還不錯(cuò),但你不能認(rèn)為所有人的理解能力都能達(dá)到你的水平,即便是你認(rèn)為的簡(jiǎn)單,很多人也沒(méi)學(xué)明白,更不用說(shuō)學(xué)習(xí)STM32。
再有,我在學(xué)校學(xué)的是51,工作中才接觸的STM32,沒(méi)有覺(jué)得任何難的地方,只是更復(fù)雜,但談不上有必須要人指導(dǎo)的難,而且32的很多配置都有庫(kù)函數(shù)支持,大大降低了應(yīng)用難度,所以,題主好好研究一下51,也應(yīng)該能有很大好處
再小聲說(shuō)一句:我的畢業(yè)設(shè)計(jì)就是"基于FPGA設(shè)計(jì)一款簡(jiǎn)單單片機(jī)",然后里面的邏輯架構(gòu)就是參考的 51內(nèi)核。
其實(shí)以上有些部分說(shuō)得欠妥,就是這一句:“學(xué)了51這個(gè)課程,你幾乎可以嘗試用門(mén)電路去搭建一個(gè)簡(jiǎn)單的單片機(jī)”,為何欠妥呢,因?yàn)檫@是出于當(dāng)年我自己的學(xué)習(xí)經(jīng)驗(yàn)+我當(dāng)年的學(xué)習(xí)課程而得出的結(jié)論,不一定符合當(dāng)前大學(xué)生的真實(shí)情況;
因?yàn)槲易罱龅降氖拢屛矣X(jué)得我說(shuō)得太片面了。
前段時(shí)間我招聘了一位應(yīng)屆畢業(yè)生來(lái)寫(xiě)單片機(jī)程序,我發(fā)現(xiàn)他對(duì)單片機(jī)工作機(jī)理可以說(shuō)是一竅不通,他對(duì)單片機(jī)的理解就是一臺(tái)電腦,需要在上面寫(xiě)應(yīng)用,然后我看到他寫(xiě)程序就是不停地到處找API,我驚訝得差點(diǎn)說(shuō)不出話(huà),然后我看了他們的單片機(jī)課程相關(guān)教材,呵,好家伙,除開(kāi)幾個(gè)零星章節(jié)簡(jiǎn)單地講了一下IO口/定時(shí)器結(jié)構(gòu),幾乎再?zèng)]有分析單片機(jī)內(nèi)部結(jié)構(gòu),整本書(shū)都在講應(yīng)用,我問(wèn)他有沒(méi)有別的單片機(jī)課程,回答是沒(méi)有;這本教材還是某著名大學(xué)出的(原諒我忘記是哪一所大學(xué)了),我是相當(dāng)驚訝的,我覺(jué)得如果只是學(xué)單片機(jī)應(yīng)用的話(huà),干嘛還選51單片機(jī)來(lái)講呢,完全可以流行什么講什么?。晃覀儗W(xué)習(xí)51單片機(jī),就是因?yàn)槲覀儗?duì)它內(nèi)部結(jié)構(gòu)清晰,通過(guò)它的學(xué)習(xí),可以完全理解MCU內(nèi)部真實(shí)的工作流程,通過(guò)學(xué)習(xí)內(nèi)部工作流程,不但可以進(jìn)一步鞏固數(shù)字電路的基礎(chǔ)知識(shí),還可以理解機(jī)器碼是如何執(zhí)行的,可以更深入理解中斷,理解入棧出棧.....簡(jiǎn)直受益良多啊,然而這本書(shū),我感覺(jué)它是將精華部分完全丟棄,轉(zhuǎn)而全是講解如何驅(qū)動(dòng)步進(jìn)電機(jī),如何驅(qū)動(dòng)LCD,如何讀傳感器,等等等等,都是浮于表面的一些技術(shù),說(shuō)實(shí)話(huà),這些個(gè)技術(shù),如果基本功扎實(shí),不就兩三天的事情嗎,學(xué)校學(xué)習(xí)的重點(diǎn)應(yīng)該是最基本的基礎(chǔ)啊。真的是無(wú)語(yǔ)。