STM32編程與51編程一樣嗎?
時間:2019-10-28 來源:重慶中心,王老師

單片機是指一個集成在一塊芯片上的完整計算機系統。盡管它的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部總線系統,目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網絡、復雜的輸入輸出系統集成在一塊芯片上。
早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發展出了MCS51系列單片機系統。我們說的51一般是指51系列的單片機,型號有很多,常見的有STC89C51、AT89S51,其中國內用的最多的是STC89C51/2,下面我們就以STC89C51來講解,并以51簡稱。
隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。其中ST公司的32位微處理器STM32系列占據了大量的市場份額。
那么作為開發者在開發51系列單片機與stm32系列單片機時存在什么樣的差異性呢,下邊來討論下。
編程語言
由于51單片機結構相對簡單,所以通常多使用匯編語言和C語言編程。
而STM32系列的開發工作不會采用匯編語言因為工程量巨大,寄存器太多了,位數也多。
編程方式
51單片機的任何器件只需要配置寄存器打開就可以進行編程,而STM32系列單片機則需要先打開對應的時鐘,包括開啟后打開外部時鐘(晶振)才開始工作。
庫函數不同。由ST廠商推出的STM32系列單片機,ST廠商給了豐富的函數庫,可以直接使用庫函數,所以比起普通的51單片機在程序編寫方面要更加的省時。
資源不同
資源不同。STM32的內部資源(寄存器和外設功能)較普通的51單片機都要多,基本上接近于計算機的CPU了,所以在程序編寫上能有更多的選擇。
通過上邊的對比可以看到,雖然可以使用相同的編程語言進行程序編寫,但是在編程方式和編程的快捷程度上均是STM32比較優秀。
無論是51系列還STM32系列,都同屬于單片機,可以說STM32系列是51系列的繼任者,隨著現在技術發展,對硬件的拓展性和處理能力上有了更高的要求。STM32無論是內核部分還是總線寬度;無論是速度、功耗、外設都比51系列強大。

