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

2021-07-02 06:00:28 字數 5319 閱讀 4216

1樓:龍鬆漫談

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

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

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

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

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

2樓:匿名使用者

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

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

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

3樓:匿名使用者

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

4樓:匿名使用者

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

5樓:藤原子大雄

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

6樓:玉成雙偶呃呃

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

7樓:匿名使用者

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

8樓:專注51微控制器

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

9樓:花茶茶

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

10樓:壹驥工作室

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

11樓:匿名使用者

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

12樓:匿名使用者

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

13樓:風行者

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

14樓:匿名使用者

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

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

15樓:

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

16樓:義採

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

17樓:匿名使用者

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

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

18樓:愛之麒麟觴

stm32主要採用庫開發

51只可以用暫存器開發

19樓:暗影·羽

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

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

stm32比51微控制器有什麼優點?

20樓:西西哩的小馬甲

優點如下:

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

2、stm32微控制器程式都是模組化的,介面相對簡單些,因為它自身帶好多功能,工作速度也快。而51的自身功能少,需要外圍元件多,要求對電子熟悉。

4、 stm32 的運算速度大約是51微控制器的幾十倍吧,而且外圍介面功能比51強大太多。

stm32是基於arm® cortex® m 處理器核心的 32位快閃記憶體微控制器,為mcu使用者開闢了一個全新的自由開發空間,並提供了各種易於上手的軟硬體輔助工具。s

tm32 mcu融高效能、實時性、數字訊號處理、低功耗、低電壓於一身,同時保持高整合度和開發簡易的特點。業內最強大的產品陣容,基於工業標準的處理器,大量的軟硬體開發工具,讓stm32微控制器成為各類中小專案和完整平臺解決方案的理想選擇。按核心架構分為不同產品系列。

21樓:匿名使用者

微控制器的用途相同,但不是一個檔次,stm32是32位微控制器,一次處理資料寬度32位,而51只能處理8位

stm32的內部ram和rom(flash)都比51大得多,stm32f103有64kram,512krom,stm32f407有256kram,1m rom,主頻也很高,分別達72m和168m 因此運算能力要強大的多

片上外設也比較豐富,定時器多達14個或17個,pwm 功能強大,其adc精度也達到12位, 還有da模組 實時時鐘 較高檔次的還有浮點運算單元 dsp功能

特別是dma控制器,將cpu從繁忙的資料中轉中解脫出來

另外還有fmsc記憶體介面

它的外部介面也很豐富,多個串列埠 usb控制 spi i2c 等一應俱全,高檔有的還有攝像頭介面,網路介面等

stm32和stc51的區別?原創。

22樓:布樂正

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

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

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

23樓:匿名使用者

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

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

24樓:匿名使用者

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

25樓:匿名使用者

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

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

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

26樓:

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

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

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

stm32和51微控制器可以公用keil進行編嗎

可以的,破解時兩個都 要破解,用 keil4也可以編譯51,啟動時找不到路徑可以自行新增,在一個tools.ini檔案裡有如下資訊 可見有兩個path uv2 organization 平煤股份十一礦 name xia ming xia version v2.0 email 11kxmx 163.c...

開關電源,STM32微控制器產生PWM控制MOS管通斷,這個如

不用太複雜,做簡單的。用adc功能測量電壓,然後根據電壓調整pwm的佔空比則可以了。直接比例演算法,不需要微積分。用stm32產生pwm訊號控制步進電機,頻率和佔空比怎麼弄啊,下面是我寫的程式,怎麼才能輸出波形 你這個是bai初始化程式,子程式可用定 du時器 中斷子程zhi序細分spwm,也可da...

關於51微控制器的中斷,關於51微控制器的中斷。

中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷源 中斷號 優...