1、引言
在當今這個模擬電子技術看似被冷落(其實無處不在)和數字電子技術主導的資訊時代,對於剛入電子信息相關專業的大中專學生或需要轉型進入電子產品硬體研發行業的工程師而言,首先面對的第一個問題是:8位的51單片機和32位的基於Cortex-M3內核的STM32單片機哪一個作為電子技術入門的硬體平臺更合適?在綜合收集網上相關信息後,我相信很多剛入行的朋友,都應該被支持51單片機和STM32單片機任一種硬體平臺作為入門的理由搞得不知所措。
我雖不才,但是,也從事硬體研發工作十年之久。因此,我也想從自己的角度給各位剛入行或準備進入電子產品硬體研發行業的工程師和大中專學生一個儘可能全面的參考依據。當然,我發布的言論,也僅僅是代表我個人的觀點,各位朋友如何做出抉擇,依舊要考各位朋友自己斟酌。
由於在國內,STC系列的51單片機市場佔有率最高,參考資料和使用人群眾多,因此,在下文中,我們將以STC單片機作為51單片機的代表。正如,STM32單片機作為基於ARM公司Cortex-M3內核單片機的代表一樣。在這裡STC單片機是51單片機的代表,STM32是基於ARM公司Cortex-M3內核單片機的代表。
2、從易到難的學習規律
我想各位朋友都應該知道學習的基本規律就是:從易到難。無論我們學習任何知識、經驗和技能,都要遵循這個規律,否則,好高騖遠的後果就是:要麼面對重重困難,選擇放棄,或者,從頭再來。
STC單片機與STM32單片機相比,具備以下優點:
(1)STC單片機內部結構比STM32單片機簡單,便於初學者理解單片機的經典結構。雖然STC單片機和STM32單片機都是哈弗計算機結構,但是,STC單片機的內部結構相對而言,更為簡單。
(2)STC單片機寄存器數量比STM32單片機少了很多很多。STC單片機的寄存器只有幾十個,可是STM32單片機的寄存器有幾百個。兩者完全不在一個數量級上。由於MCS-51、Cortex-M3、Cortex-M4、Cortex-A9、Cortex-A73或者MIPS等等單片機內核及片內外設,都是通過程序操作寄存器實現特定功能的,因此,寄存器數量只有幾十個的STC單片機,相對而言,更容易讓初學者入門學習。
(3)STC單片機採用MCS-51指令集,其彙編指令一百多條,比STM32少了很多很多。相對少的彙編指令集,能夠讓初學者相對快速的了解運算處理器彙編指令的功能、結構與計算機體系結構之間的關係。
(4)最新版本的STC8系列單片機具備下載程序方便和自身就是仿真器的特點,節約初學電子產品設計技術的資金投入,學習開發技術方便快捷。STM32需要單獨購買獨立的Jlink仿真器才可以仿真。
(5)STC單片機具備相對簡單的經典體系結構,使初學者不必花費太多精力在其硬體本身,可以集中精力掌握好後續任何類型單片機開發的基礎語言:C語言。同時,也可以掌握電子產品基本的設計思想、經驗和技能。
因此,綜上所述,根據我們由淺入深和從易到難的學習規律可知:初學電子產品開發技術的工程師和大中專學生,應先學習和掌握採用STC單片機開發電子產品的技能。這是基礎技能。
3、魚和熊掌需依次兼得
STC單片機和STM32單片機都是採用獨立的數據和地址總線訪問數據和程序存儲器的哈弗計算機結構。STC單片機是基於MCS-51內核的8位單片機,STM32是基於Cortex-M3內核的32位單片機。兩者都具備單晶片內集成計算機的核心運算處理器和不同功能的外設。STC單片機和STM32單片機在國內應用都非常廣泛,資料也非常多,入門需要的信息、資源、工具和軟體等等都比較豐富。這兩種晶片的這些特點和現實,決定了當前一個非常重要的現實:硬體研發工程師有必要全部掌握採用STC單片機和STM32單片機開發產品的技能。
4、總結
入門學習建議:學習和掌握採用STC單片機研發產品的思想、知識、經驗和技能。這是硬體研發工程師的基本技能,也是學習32位和64位SOC晶片的基礎。
當前技術發展的現實告訴我們一個現實:硬體研發工程師有必要全部掌握採用STC單片機和STM32單片機開發產品的技能。
愛搗鼓科技,探索集成電路晶片的科技知識和信息,修煉和分享採用集成電路晶片開發產品的技藝!