stm32跟51的程式設計會差很多麼

時間 2021-12-25 03:20:13

1樓:大妮

基本概念stm32和51差不多,但是程式設計方式及思考程式設計的思路方面還是有差距的,可能需要改變一下51時候的程式設計方式及思路。

2樓:匿名使用者

完全可以,其實也很簡單。

st提供了比較完善的韌體庫,把stm32的各種暫存器等等東西都用結構體等等組織好了,你只要直接使用,很方便,沒有了研究暫存器的繁瑣事了。而且官方提供了很多例程,很多東西改動改動就ok了。

在程式設計上,和51還是有差別的。stm32的gpio比51微控制器強大很多倍,51微控制器的p0**可能需要外接上拉電阻,stm32的gpio可以通過相關暫存器配置上拉、下拉、浮空、開漏、推輓等等模式,靈活方便。

3樓:匿名使用者

51和大多數微控制器一樣,是沒有固定的書寫方式的,也就是程式設計風格自由確定,自己想怎麼來就怎麼寫,但是需要詳細連線晶片內部結構,暫存器等,才能很好的書寫程式,前後排序,但stm公司卻出了一個所謂的庫,用的是位段,結構+共用+連結串列的方式來控制埠控制暫存器等,初學者不需要了解晶片內部結構,只需讀懂庫,就可以對應其功能的控制,看起來旨在模仿c++的動態庫了,但是你一旦習慣了這種獨家風格,以後寫其他晶片就受限了,因為沒有庫可呼叫,特別是到了arm9,a8等高階晶片,都是linux核心+驅動程式的,這時就感覺到苦頭了,如果定位在永遠不上系統,一輩子裸跑,那就沉浸在stm的庫裡吧,如果想升級到系統架構,那就最好不要受他獨家庫的影響

stm32微控制器和51微控制器差別大嗎,有那些差別,最好可以舉例說明一下,謝謝 100

4樓:匿名使用者

差別非常大

51微控制器功能很少,stm32很強大

51微控制器沒有模擬器件,stm32內建模擬51微控制器沒有pwm,stm32內建pwm51微控制器無pld,stm32有pld

51微控制器的低功耗簡單,stm32豐富

51微控制器易於學習,資料豐富;stm32不太好學(功能強大的,都不好學)

5樓:0427付強

他倆的區別就像是手機和大哥大。

除了都屬於微控制器之外,沒有什麼共同點。32無論是io控制,還是定時器等內部資源,都要比51複雜很多,也強大了很多。c語言程式設計的思路、演算法是類似的

6樓:匿名使用者

差太多,架構,指令集,應用,位數,附加的外圍東西都不一樣

7樓:匿名使用者

多,51是農民,資源少,能力小;stm32是地主,財大氣粗,資源豐富,速度快

8樓:匿名使用者

cpu核心不同時代的產品 外設多 比如定時器少的也有6個 而且功能複雜

9樓:匿名使用者

32位,cpu不一樣

10樓:匿名使用者

51和stm32程式設計都差不多吧

stm32跟普通的51微控制器在程式編寫方面有什麼區別?

11樓:龍鬆漫談

1、庫函式不同。由st廠商推出的stm32系列微控制器,st廠商給了豐富的函式庫,可以直接使用庫函式,所以比起普通的51微控制器在程式編寫方面要更加的省時。

2、執行速度不同。普通的51微控制器執行速度較慢,特別是雙資料指標,而stm32系列微控制器最高工作頻率可達72mhz。

3、便利程度不同。51微控制器的任何器件只需要配置暫存器開啟就可以進行程式設計,而stm32系列微控制器則需要先開啟對應的時鐘,包括開啟後開啟外部時鐘(晶振)才開始工作。

4、資源不同。stm32的內部資源(暫存器和外設功能)較普通的51微控制器都要多,基本上接近於計算機的cpu了,所以在程式編寫上能有更多的選擇。

5、程式語言選擇不同。stm32基本不會選擇組合語言了,因為工程量巨大,暫存器太多了,位數也多,而51微控制器則多使用組合語言。至於c語言程式設計方面的區別就不大了。

12樓:匿名使用者

stm32和51微控制器相比,**效率高(32位包含資訊量大,多數指令一個位元組搞定)、執行速度快(72mhz系統時鐘不是蓋的)、功能強大(外設豐富、管腳多、管腳功能可重對映),優點多多。程式設計的區別,stm32基本別比劃彙編了,能把腦袋搞大大滴,暫存器太多了,位數也多,我一直搞51彙編也放棄了。c語言程式設計區別就不大了,況且stm32在國內技術支援很到位,資料豐富(關鍵是不但有e文,中文資料翻譯的也多),還有完整的庫函式支援,從51轉過去沒太大困難。

有51相似電路的程式,移植的話好多都不用改的,只是針對暫存器、io口、中斷等的修改,軟體流程、控制邏輯基本不用改。

說了一大堆,不是說stm32有多好學,還是有點難度,但比起它的優越來,付出是值得的。希望對你有所幫助。

13樓:匿名使用者

stm32 是後來出現的升級版微控制器 效能更強 資源更多 功耗更低,如果是最原始的 看晶片手冊暫存器 程式設計那麼沒差別,只是stm32的 晶片暫存器比51多十幾倍,因為功能多 暫存器當然就多, 但是 st公司也想到這個問題了,所以 stm32 意法半導體 公司有官方的 hal 庫,這個庫封裝了大量底層的 暫存器操作,吧一系列操作封裝為一個個 的 介面函式, 程式設計直接呼叫庫函式就很簡單你,比如你 開啟串列埠 如果用暫存器程式設計你要一步一步 設定每個關於串列埠的暫存器,設定時鐘等等,估計需要一百多行**,但是 庫函式就呼叫兩個函式就行了 一個 初始化函式 一個設定使能函式就完事了, 兩行 最多三時行 對新手很友好,以為串列埠這麼簡單 那ing個函式就可以串列埠通訊了。其實是 hal 庫函式 封裝了一系列的 串列埠暫存器操作

14樓:匿名使用者

stm32代表arm cortex-m核心的32位微控制器。51微控制器是對所有相容intel 8031指令系統的微控制器的統稱。

15樓:藤原子大雄

庫有很大不同,stm有非常龐大的類庫,而且就建個工程stm也是很複雜

16樓:玉成雙偶呃呃

51主要是呼叫暫存器,而32裡面的暫存器太多,商家就把它封裝成了很多庫函式,你只用呼叫庫函式就行了。這是其最大區別。

17樓:匿名使用者

用c語言程式設計,雖然脫離了對cpu和記憶體的直接操作,但擺脫不了對特殊功能暫存器的操作,由於51和stm32微控制器硬體結構和功能有很大差別,程式的不同主要表現對特殊功能暫存器的操作上。但stm32特殊功能暫存器太多,直接操作特殊功能暫存器難度很大,因此推薦使用庫函式的操作方法

18樓:專注51微控制器

stm32簡單的問題複雜化了,編個點亮一個led燈,都需要一段堆的**?這方面51微控制器就簡單多了。

19樓:花茶茶

既然你都這麼問了,為什麼不花幾天學習一下stm32,簡單入門一下。自己心裡有個比較。

20樓:壹驥工作室

架構不一樣。stm32都是已經封裝好的結構體你直接呼叫就好了,功能也更多,實現其他更難。51相比比較簡單,適合入門學習。編寫方面都是c語音編寫的,函式和寫的形式上是一樣的。

21樓:匿名使用者

stm32是32位微控制器,諾依曼架構,51是哈佛架構的8位微控制器,細微區別多了去了,比如stm32是統一編址,51是ram和rom分開編址,int型別預設的長度不同,stm32預設32位,51預設16位,long型別計算週期差別更大,如果是彙編的話,指令就相差更多了,stm32是arm4核心,核心暫存器就比51多很多很多,中斷向量也是多而複雜,嗯,編不下去了

22樓:匿名使用者

一個暫存器少,可以直接操作暫存器,。一個暫存器太多,操作不過來時,用庫函式。

23樓:風行者

stm32是32位微控制器,功能比較豐富,雖然多,但功能實現起來會比較方便,stm32有兩種程式設計方式,暫存器和庫函式,暫存器比較麻煩一般都使用庫函式的正規化,庫函式就是st公司把**封裝好了,你要用某個功能直接呼叫就可以了,相當方便

24樓:匿名使用者

51的比較簡單一點,暫存器比較少,程式設計直接可以操作暫存器,程式設計方便。

stm32因為內部功能很多,暫存器也多,st公司為了快速推廣stm32微控制器,於是做了一個暫存器配置庫檔案,工程師通過呼叫stm32的庫檔案,可以不用瞭解內部暫存器,直接部署功能即可,比較像純軟體程式設計。

25樓:

51 比較低階的c吧,全部的函式都要自己寫,全部的暫存器都要搞明白,都要自己操作。庫函式很少。stm32比較高階了,一般我會用官方出的stm32cubemx配置埠和暫存器,然後程式設計的時候,呼叫官方的hal庫函式,基本上自己不用寫底層**。

26樓:義採

現在一般都是使用c語言編寫應用程式,就這方面來說兩者沒有區別

27樓:匿名使用者

以c進行"操作"時並無明顯區別, 使用上並無大變化. 唯微控制器核心架構不同, 故其register控制方式不同, 會有些差異, 多是因為在硬體架構所致.

例如: 中斷上的操作比單純的bit控制, 多上一些複雜度; boot起始位置也具備變化性; io設定與51的直接輸出控制稍有不同, 多了些設定; 其他則需要個別依照所用到的部分, 逐一查閱檔案.

28樓:愛之麒麟觴

stm32主要採用庫開發

51只可以用暫存器開發

29樓:暗影·羽

stm32通過底層寫程式的話,跟51區別不大、、無非就是工程量巨大得多……

如果用封裝好的stm32程式設計環境寫的話,跟51的共同點好像也就剩下都是c語言或c++了把

stm32和stc51的區別?原創。

30樓:布樂正

stm32屬於arm核心的一個版本,比傳統的51微控制器高階多了,有很多資源是51不具備的,如usb控制器。而且已經廢除了機器週期什麼的,速度不是51能比的。

微控制器,通常指的就是8位微控制器,比如51等,stm32是屬於32位機,應該算是arm系列了,其實還是微控制器,只不過要比8位微控制器處理速度要快,功能要強,整合的資源也更豐富,其次就是程式設計的模式有改變,微控制器通常直接對硬體資源進行操作,而stm32是在廠家提供的庫上進行程式開發了。

51微控制器是8位微控制器。stm32,與51屬於微控制器範疇,單片整合多種用於控制,通訊,儲存的外設。系統在程式的控制下執行。stm32運算速度、儲存容量遠高於51微控制器。

31樓:匿名使用者

對於stc51和stm32,簡單有簡單的好處,複雜有複雜的用途。並不能完全說哪個更好,怎麼也是微控制器嗎,能好過最新的cpu之類的嗎?

由其對於一些簡單的任務,比如讀取溫度感測器的資料,顯示到一個小小的螢幕上,這個你要用stm32來做,是不是太大才小用了。適合就好,哪怕是末來,在大量的小的,不需要運算力多大的地方,8位機,還是大有用處。

32樓:匿名使用者

stm32更高階,32位的,而且程式設計可以用暫存器,但更可以用官方提供的庫函式,比較方便,是趨勢!!!望採納!!!

33樓:匿名使用者

stc為8 位機 速度20多m 功能少而簡單儲存空間也小!

stm32 為32位機 速度72m或168m,功能多,引腳多,儲存空間大!

處理一個長整型,stm比stc快幾十倍!

34樓:

stc51是stc公司推出的以mcs-51為核心的微控制器的。和at89c51基本一致,但是可以通過串列埠直接燒寫所以被廣泛使用。mcs-51是入門級一款很經典的mcu,特點就是簡單,所以在教學時大量採用。

但是因為是70年代的晶片,設計和資源上在現在來看已經嚴重不足了。

stm32是基於arm公司最新一代cortex-m核心的晶片,意法半導體(st)公司推出的,因為其超高的價效比和簡單函式庫程式設計方式,而廣泛採用。stm32系列幾乎整合了所有工控領域的所有功能模組,包括usb、網路、sd卡、ad、da等等。主頻72m。

STM32比51微控制器有什麼優點

西西哩的小馬甲 優點如下 1 stm32屬於arm核心的一個版本,比傳統的51微控制器高階多了,有很多資源是51不具備的,如usb控制器。而且已經廢除了機器週期什麼的,速度不是51能比的。2 stm32微控制器程式都是模組化的,介面相對簡單些,因為它自身帶好多功能,工作速度也快。而51的自身功能少,...

stm32微控制器怎麼跟altium designer聯絡起來

你的意思是用altium來 通過iar或mdk之類的,甚至altium自身功能來跑 再在altium裡面看效果?我只能說,你想多了。他們之間唯一的聯絡就是altium把stm32當成一個器件來使用,畫出一個pcb板子。 廖骯繕亂 新建原理相簿。選擇選單欄上的 檔案 即可看到,具體操作如下圖所示 2做...

剛剛學完51,接下來是學stm32還是fpga

直接學學arm就行了。普通微控制器的指令集大同小異,若非有特殊的應用,沒必要深究,深究了也記不住。arm應用較廣且知識量比較大,可以花多謝時間研究。linux系統龐大,等你熟悉了arm,現代arm上基本都是跑os的,專注一個系統熟悉熟悉就好了,一個人基本是不可能搞懂整個系統的所有部分的。嵌入式只是工...