STM32庫函式是什麼 有何意義

時間 2021-06-02 23:49:03

1樓:befreien

意義在於可以參考庫函式自己用暫存器加減化裁的重寫。。。 庫函式為了復用通用搞得效率不咋地,再說用微控制器繞過暫存器心虛不虛?

2樓:Ayaneru

除了原本類似於51的庫函式定義外,32的庫函式更為豐富,將專案的開發直接變為大部分呼叫庫函式,如51那樣直接操作暫存器的操作將被大大減少,基本都為直接呼叫函式完成

3樓:馮導

老手之蜜糖新手之砒霜。

嚴重不建議新手直接使用,對於新手,求求你們至少得花幾周時間先玩熟暫存器吧!本來生在這個年代,你們就已經錯過很多了。

很懷念之前vim+gcc的年代,和那個時候的嵌入式程式設計師。後來出了五花八門的ide,諸如ads、keil、iar之類的,把現在的嵌入式程式設計師寵得根本不知道自己在做什麼。

那些最基礎最底層的東西,重複做確實沒意義,但是你得懂啊!

4樓:

其實很簡單,學習暫存器並不是為了用暫存器,而是更好的使用庫函式,以及,當庫函式滿足不了自己的時候可以去寫一下自己需要的底層。和樓上那位說的意思大概差不多,自己寫底層,小專案其實沒什麼大的影響,如果大專案的話,自己寫底層其實是很不穩定的。

5樓:laputa

預設你學過51等基礎的微控制器。下面以點亮乙個LED燈為例分析庫的作用。

你在51裡只需要配置某個io口為高低電平就行了,比如p1.1=0。

但是在stm32中,你不僅需要配置某個io口的高低電平,還需要開啟這個io口的時鐘,配置這個io口的工作模式(輸出還是輸入),速度。這麼多的操作顯然要要操作很多暫存器,要查手冊很麻煩。所以ST官方就給你了乙個庫檔案,你不用去查暫存器了,只要知道我要開時鐘,配模式,速度這個步驟就行了,然後你可以直接用庫裡面命名非常清晰的函式去實現你的整個操作,最終點亮乙個led燈。

說到底就是stm32比51功能上高階一點。自然,功能上高階一點,那麼他的結構就會複雜一點,程式設計起來就會難一點。而庫函式就是開發出來便於使用者程式設計的。

庫可以使使用者不用關心底層暫存器的配置,即可實現想要的功能,大大縮短乙個專案的開發周期。

至於庫函式如何學習,我的建議是買一塊stm32開發板,跟著例程走一遍(不需要很深的c語言功底,知道結構體,列舉的基本概念即可),仔細看一下gpio,串列埠,中斷,定時器等的配置步驟,仔細看程式! 一步一步來你會發現,都是套路!

6樓:

是ST公司廠家提供的、針對自己的STM32微處理器的、MCU內底層IO的驅動程式,也叫BSP級支援包。如MCU內的定時器驅動、UART驅動、SPI驅動、I2C驅動等等。

做自己應用程式時,有對硬體底層的訪問時,使用BSP程式。如果沒有BSP程式,你只能按STM32的詳細硬體資料手冊,寫自己的底層驅動了,很麻煩,這不利於廠家銷售自己的晶元。

廠家生產STM32系列晶元後,給你做好底層驅動BSP,你開發上層程式不是很方便了嗎?

程式分為底層硬體相關層,和上層硬體無關層。ST廠家提供的STM32驅動是屬於底層硬體相關層的東西。上層硬體無關層是可以直接移植的,而底層硬體相關層不同MCU會有不同的,不可直接移植。

如果說有意義的話,程式設計師對硬體底層不了解,也可以使用驅動程式直接操作底層硬體,使程式設計師更加關注上層的應用邏輯程式。

用STM32只會庫函式,不會用暫存器,有影響嗎?

rundstedt 如果你用過其他微控制器,有操作暫存器的底子,那麼直接用庫函式好了,沒有任何影響。如果STM32是你使用過的第一種微控制器,還是了解一下暫存器操作,我記得庫函式進入main之前要操作RCC暫存器選擇合適你的時鐘源的,把那部分理解清楚好一些。如果對暫存器的概念一竅不通的話,debug...

ARM程式設計是什麼,STM32又是什麼?

醜劍客 STM32 意法半導體生產的晶元,晶元內封裝了Cortex M3 內嵌的CPU 和一些外設。ARM程式設計 採用Cortex M3支援的ARM指令對Cortex M3程式設計,基於Cortex M3和STM32晶元手冊,通過暫存器 已對映為實體地址 訪問Cortex M3和STM32提供的外...

請問stm32的底層驅動是什麼意思,需要學習那些知識?

無趣的人 誠然,正點原子和野火對國內stm32的推廣起到了很大的作用。但不得不說,要是真想學驅動開發建議直接上arm,用Linux來搞。實際編寫編譯鏈結過程你都能清清楚楚。我不是瞧不起Keil和mdk,我自己也用了四年。因為太方便了,所以一些底層的東西你不會接觸到。想學驅動,還是要學會看晶元手冊和原...