stm32hal庫官方詳解 stm32是用hal庫,還是標準庫?懂行的介紹一下?
stm32是用hal庫,還是標準庫?懂行的介紹一下?一開始,當(dāng)我在大學(xué)學(xué)習(xí)STM32時,我用寄存器來開發(fā)它。當(dāng)我運行所有寄存器例程時,我使用標準庫再次學(xué)習(xí)以前的例程,然后我再也不使用純寄存器開發(fā)。為什
stm32是用hal庫,還是標準庫?懂行的介紹一下?
一開始,當(dāng)我在大學(xué)學(xué)習(xí)STM32時,我用寄存器來開發(fā)它。
當(dāng)我運行所有寄存器例程時,我使用標準庫再次學(xué)習(xí)以前的例程,然后我再也不使用純寄存器開發(fā)。
為什么?因為沒有機會,這時候我已經(jīng)畢業(yè)了。在公司開始做項目的時候,項目的緊迫性已經(jīng)不再是以您學(xué)習(xí)實踐為目的,而是以更快更高的質(zhì)量完成項目開發(fā)工作,將產(chǎn)品推向市場。
后來,STM32生產(chǎn)了越來越多的型號。為了對所有型號的庫使用統(tǒng)一的接口,方便后續(xù)的維護,St退出了stm32hal庫和stm32ll庫。這兩種庫可以直接基于stm32cubemx圖形配置生成項目。而且標準庫ST將不再維護和更新
因此顯然最好使用最新的Hal庫或ST的ll庫。有些人可能會說Hal庫效率不高。我最好用標準圖書館。是的,Hal沒有標準庫那么高效。但ll庫作為替代品更接近底部。
目前,我的項目都基于Hal庫。如果一些flash很小,比如8K,我將使用ll庫來優(yōu)化代碼空間。
用STM32只會庫函數(shù),不會用寄存器,有影響嗎?
不會配置STM32寄存器,但會使用官方庫函數(shù),不影響STM32單片機的使用。STM32單片機在編程時可以采用配置寄存器和庫函數(shù)的方式。這兩種方式都可以操作STM32單片機。
熟悉51單片機的朋友,都知道在編寫程序時,需要配置51單片機寄存器。單片機擁有大量的片上資源,而要使片上資源正常工作,需要配置相應(yīng)的寄存器。例如,單片機的定時器資源,在配置定時器相關(guān)寄存器時,主要是配置定時器的工作模式、位數(shù)、是否使用定時中斷、配置初始值等,并向STM32單片機、廠家直接提供官方庫功能。這些庫函數(shù)的功能實際上是封裝寄存器配置過程。編程時,用戶不需要直接處理寄存器,只需調(diào)用相應(yīng)的庫函數(shù)即可。這樣,寄存器的配置過程就可以分離,實現(xiàn)了硬件層和軟件層的簡單分離,實際上就是驅(qū)動程序的作用。
STM32還具有Hal庫。即使使用庫函數(shù)編程,也建議您研究寄存器。
因此,無論是使用庫函數(shù),還是直接配置寄存器都能操作MCU。
stm32單片機編程用庫函數(shù)好還是寄存器好?
這個問題來自兩個方面:如果你想快速開發(fā)項目,那么使用庫函數(shù)開發(fā);如果你想學(xué)習(xí)單片機原理,那么使用寄存器開發(fā)。
1、就開發(fā)時間的速度而言,使用庫函數(shù)
現(xiàn)在一個公司在開發(fā)一個項目的時候,對時間進度會有很高的要求。一般來說,這將需要快速有效地制造產(chǎn)品。不管你用哪種方式,只要你保證產(chǎn)品的質(zhì)量。在這種情況下,我們必須找到一種快速開發(fā)的方法,而庫函數(shù)就是為此而創(chuàng)建的。為了幫助產(chǎn)品工程師降低開發(fā)難度,加快開發(fā)進度,芯片公司推出了多種庫函數(shù)。這些庫函數(shù)由專業(yè)程序員編寫,經(jīng)過芯片廠商反復(fù)驗證,代碼穩(wěn)定性、規(guī)范性和正確性都很好,可以直接使用。
當(dāng)然,庫函數(shù)也有一些缺陷,比如增加了代碼量,影響了程序的速度,但是現(xiàn)在STM32 MCU的程序空間一般都足夠大,每個系列都有可以互換的針對針型號。如果程序空間不夠,直接用更大的程序空間替換另一個pin兼容的,而且程序可以直接移植過來,幾乎不需要修改。
2、如果想了解單片機的工作原理,真正了解STM32的內(nèi)部結(jié)構(gòu)、工作過程和底層配置,當(dāng)然可以選擇寄存器進行開發(fā)。
使用寄存器開發(fā),可以直接接觸底層,使用寄存器可以減少代碼量,提高程序速度。
51單片機,stm32,arduino都是用什么語言進行編程的?
51單片機,STM32單片機用匯編或C語言,現(xiàn)在基本上都用C語言編程,Arduino有自己的編程環(huán)境,用戶也用C語言編程。
51單片機進入中國比較早,我用匯編編程比較早。我在大學(xué)時學(xué)過匯編編程,但現(xiàn)在我用C語言編程,匯編已經(jīng)不可用了。Keil是51單片機的通用編程環(huán)境。現(xiàn)在keil更新為keil5。下面是51單片機keil的編程環(huán)境。
STM32微控制器是由STM32半導(dǎo)體公司推出的具有高性價比和豐富片上資源的32位微控制器。我一直在使用這一系列的微控制器,它們都是用C語言編程的。官方庫函數(shù)和Hal庫都是用C語言編寫的,盡管有些函數(shù)是用匯編語言存儲的。STM32單片機采用keil-MDK編程。
Arduino是一個非常成功的開源硬件,并且有自己的開發(fā)環(huán)境。它封裝了底層寄存器設(shè)置。用戶不需要自己配置寄存器,可以調(diào)用封裝的函數(shù)。他們可以從官方網(wǎng)站下載編程ide。Arduino旨在培養(yǎng)用戶對編程的興趣,簡化技術(shù)難度,因此非常受歡迎。
在用戶級別,C語言編程現(xiàn)在是主流。C語言的可移植性和可讀性比匯編語言有很大的優(yōu)勢。很多人都在使用匯編編程,尤其是在底層。
stm32標準庫和hal庫有多大差別?
新芯片現(xiàn)在只引入Hal庫。與標準庫相比,Hal庫使用了不同的API函數(shù),它們之間也是相互獨立的。優(yōu)點是它可以用cubemx生成代碼。(ST為其開發(fā)了一個支持桌面軟件stmcubemx。開發(fā)人員可以直接使用該軟件進行可視化配置,大大節(jié)省了開發(fā)時間。)