AT89S51微控制器與STM32晶元有什麼共性與不同?

時間 2021-12-25 17:44:59

1樓:1216484

首先呢題目上是有些問題的,因為前者是乙個確定的型號,而後者STM32卻是個大家族,有很多個系列型號

從應用與學習的角度來說,因為都是屬於微控制器,所以他們被使用或學習的核心外設是一樣的例如GPIO基本讀寫、中斷系統、定時器、串列埠、ADC等,本質都是配置暫存器來實現不同的功能或工作模式。

不同點可以概括的說複雜度不一樣:

前者51現在沒有太多的應用,更多的是以其簡單的的特點被當做微控制器引子來入門學習,暫存器較少,時鐘網路也比較簡單,程式設計方式多是用直接暫存器程式設計,就是直接面向暫存器。

而對於STM32來說,基本無論那一型來說,暫存器與時鐘網路都是比51複雜很多倍的,因為暫存器繁多,直接面向暫存器的程式設計方式不再被推薦,開始使用庫函式來程式設計,即將暫存器進行封裝,且在近年來的趨勢,對於暫存器的封裝抽象程度越來越高。所以程式設計模式不同。

然後就是片內外設更豐富外擴SRAM需要的FSMC、驅動SD卡的SDIO、驅動液晶屏的LTDC,以及ADC DAC等都具備,功能強大遠超51。

第三個就是核心不同,也是最大的不同啦,也因此在STM32上可以執行一些FreeRTOS/UCOS等實時作業系統、RT_Thread等的一些IoTOS,TouchGFX等的GUI系統、LWIP系統等,總之功能強大

暫時就想到這麼多

2樓:

二者關係就像代步車。51類似自行車,32類似電單車。

相同點:都是車,都能完成最基本的代步功能(完成邏輯運算或是控制基本外設等等)。

不同點:當然是電單車上零件(功能)多啦,而且在速度上(執行速度、晶振)電單車會更快。

3樓:aaron

第二,可以看看雙方手冊,51可以看stc的手冊,部分stm32有中文資料表和參考手冊。

第三,要想有直觀的感受,還是建議實操一下,所花費的時間都是值得的。

4樓:撿破爛鄂外星人

本質上沒有區別,都是微控制器,都叫mcu,都是用於控制領域。區別就在於,51是8位機,定址空間有限,stm32是32位機,定址空間大的多,51的效能比較弱,指令比較簡單,stm32效能較強,用的是arm指令集

5樓:honorxcl

簡單點就是共性:都是mcu,操作實質都是配置暫存器,程式設計基本都是c,不同:核心不同,匯流排寬度不同等,但是對於一般應用不同點不是太重要,如果是學習開始學51,51學會了32也就會了,只是熟悉程度而已。

6樓:晴天

剛好我剛從51轉32,試著強答一波。樓上幾位答主說的都挺對,我也是這麼一直看資料的。

51速度慢啊,所以每寫一句都要算時間!

51簡單,51上你還可以用組合語言寫完你的軟體。32上怕是很難想象。

51基本不需要配置,emmmmp但是stc新的微控制器也需要配置了,不過比32簡單多了。

51資源相對稀缺,1KRAM都能吹爆,在32上基本都是20K太多了不過這都不是重點,重點是32有官方幫你寫好了各種函式,你只要學會呼叫就行了。學51基本上就是學各種暫存器。

新手入門,正在學習中,如有不當之處,望老司機們指明道路,多謝。

7樓:巧學.h

在系統結構上,STM32和51都屬於微控制器,都是由核心和片上外設組成。

只是STM32使用的Cortex-M3核心比51複雜得多,優秀得多,支援的外設也比51多得多,同時匯流排寬度也上公升到32bit,無論速度、功耗、外設都強於51。

8樓:Justa

從核心來看,乙個51,乙個ARM,指令集不一樣,差太多了從外圍來看,大同小異,串列埠、I2C、SPI這些匯流排的使用雖然整合了不同的IP,使用上沒有什麼不同

效能上差異大,乙個20MIPS不到,STM32基本在90MIPS以上常用的8051微控制器的時鐘範圍是1.2MHz-12MHz,STM32的時鐘24MHz以上

工藝不一樣

51微控制器,STM32,FPGA之間有什麼聯絡嗎?

AI電堂 51微控制器和STM32都是微控制器,是CPU型別的,FPGA是數位電路。微控制器偏軟體,FPGA偏硬體。FPGA的程式語言常用的有verilog VHDL,微控制器常用的是C語言。微控制器和FPGA之間有很大的不同,沒學過微控制器直接學FPGA是可以的。 碎碎思 這個問題得從幾個方面去比...

製作乙個stm32平衡小車,除了微控制器,編碼電機,還需要什麼器件?

極客小麥 最核心的器件,陀螺儀和加速度感測器 使用MPU6050即可 需要對陀螺儀資料和加速度感測器做融合,這裡使用互補濾波,卡爾曼濾波都行,得到小車的姿態資料,這是設定的姿態資料和反饋的姿態資料的偏差,通過PID演算法,然後輸出PWM,除錯引數,基本就可以讓車子立起來了。在可以保持直立之後,需要編...

嵌入式linux和用stm32微控制器做應用比如電機控制 兩者是什麼區別 ?

raymond fisher 用linux就是你在用裝好系統的計算機。直接用stm32有點類似於沒作業系統,你自己用裸機,不要作業系統,直接程式設計實現功能。當然這只是打個比方。 已登出 最大的區別就是M系列和A系列,也就是實時性問題的差別,給你乙個建議,學完STM32就得開始學ARM9 linux...