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...