51單片機是對所有兼容Intel8031指令系統(tǒng)的單片機的統(tǒng)稱,這一系列的單片機的始祖是Intel的8031單片機,后來隨著flash ROM技術(shù)的發(fā)展,8031單片機取得了長足的進展成為了應(yīng)用最廣泛的8bit單片機之一,他的代表型號就是ATMEL公司的AT89系列。
STM32單片機則是ST(意法半導(dǎo)體)公司使用arm公司的cortex-M3為核心生產(chǎn)的32bit系列的單片機,他的內(nèi)部資源(寄存器和外設(shè)功能)較8051、AVR和PIC都要多的多,基本上接近于計算機的CPU了,適用于手機、路由器等等。
1.STM32與51單片機的參數(shù)差異:兩個單片機的內(nèi)核不一樣,STM32系列目前有很多的內(nèi)核版本,有Cortex-M1/M4/M7內(nèi)核,常用的單片機型號STM32F1系列,為Cortex-M3內(nèi)核,而51單片機其實是指與intel8051內(nèi)核結(jié)構(gòu)一致的單片機,是其內(nèi)核結(jié)構(gòu)和時鐘樹結(jié)構(gòu)相差極大。STM32系列的工作主頻也比51單片機的外設(shè)不一樣,我們常用的STM32F103rct6這個型號,此型號有256K的FLASH,作為程序存儲空間,也可以作為單片機參數(shù)存儲空間,斷電不丟失, 還有5個串口,SPI接口,多路定時器和PWM輸出控制引腳。其功能也比51單片機更強大一些。
2.STM32F103RCT6是一種嵌入式-微控制器的集成電路(IC),32位 Cortex-M3內(nèi)核處理器,速度是72MHz,程序存儲器容量是256KB,程序存儲器類型是FLASH,RAM容量是48K,封裝LQFP64。51單片機的最小系統(tǒng)是由時鐘電路復(fù)位電路和電源電路這三部分組成的。
3.51單片機的一些特性:從內(nèi)部的硬件到軟件有一套完整的按位操作系統(tǒng),稱作位處理器,處理對象不是字或字節(jié)而是位。不但能對片內(nèi)某些特殊功能寄存器的某位進行處理,如傳送、置位、清零、測試等,還能進行位的邏輯運算,其功能十分完備,使用起來很方便。同時在片內(nèi)RAM區(qū)間還特別開辟了一個雙重功能的地址區(qū)間,使用極為靈活,這一功能無疑給使用者提供了極大的方便,乘法和除法指令,這給編程也帶來了便利。32單片機的一些特性:內(nèi)核:ARM32位Cortex-M3CPU,最高工作頻率72MHz,1.25DMIPS/MHz,單周期乘法和硬件除法。存儲器:片上集成32-512KB的Flash存儲器。6-64KB的SRAM存儲器。時鐘、復(fù)位和電源管理:2.0-3.6V的電源供電和I/O接口的驅(qū)動電壓。POR、PDR和可編程的電壓探測器(PVD)。4-16MHz的晶振。內(nèi)嵌出廠前調(diào)校的8MHz RC振蕩電路。內(nèi)部40 kHz的RC振蕩電路。用于CPU時鐘的PLL。帶校準(zhǔn)用于RTC的32kHz的晶振。調(diào)試模式:串行調(diào)試(SWD)和JTAG接口。最多高達112個的快速I/O端口、最多多達11個定時器、最多多達13個通信接口。
4.STM32使用寄存器比51單片機要多很多,其配置比51復(fù)雜,而且中斷邏輯,時鐘配置使能控制等很多概念都是51單片機中所沒有的,再加上stm32很多功能如USB,F(xiàn)SMC。等等功能,其功能更加強大,雖然官方提供了開發(fā)固件庫和相關(guān)開發(fā)輔助工具,但很多時候,遇到調(diào)試難度也加大了很多。stm32固件庫很多實用結(jié)構(gòu)體和指針變量,很多在51單片機開發(fā)過程不太注重結(jié)構(gòu)體與指針的使用,那么在STM32開發(fā)過程中,就難以理解其固件庫的運用邏輯。
5.一般而言,51單片機不支持操作系統(tǒng),STM32支持各種主流操作系統(tǒng),STM32開發(fā)起來更容易,可以很方便的利用系統(tǒng)實現(xiàn)各種場景下的應(yīng)用,51單片機由于沒有操作系統(tǒng),開發(fā)起來有一定阻礙,甚至有時候必須要做出部分功能的犧牲才能達到整體功能的和諧運行。