虛擬按鍵大師 stm32是用hal庫,還是標(biāo)準(zhǔn)庫?懂行的介紹一下?
stm32是用hal庫,還是標(biāo)準(zhǔn)庫?懂行的介紹一下?St以前介紹過標(biāo)準(zhǔn)庫函數(shù),包括寄存器版本和庫函數(shù)版本。注冊(cè)版本使用起來很麻煩。您需要檢查每個(gè)設(shè)置的芯片數(shù)據(jù)表。優(yōu)點(diǎn)是您可以熟悉芯片的寄存器配置。庫函
stm32是用hal庫,還是標(biāo)準(zhǔn)庫?懂行的介紹一下?
St以前介紹過標(biāo)準(zhǔn)庫函數(shù),包括寄存器版本和庫函數(shù)版本。注冊(cè)版本使用起來很麻煩。您需要檢查每個(gè)設(shè)置的芯片數(shù)據(jù)表。優(yōu)點(diǎn)是您可以熟悉芯片的寄存器配置。庫函數(shù)是基于寄存器版本的二次包
介紹,它的優(yōu)點(diǎn)是寄存器版本的缺點(diǎn),使用方便,不再需要手動(dòng)配置寄存器,使用更方便。但它的缺點(diǎn)是Hal的優(yōu)點(diǎn),即每次修改MCU函數(shù)時(shí),都需要手工修改函數(shù),而且自修改不能保證正確性,不同MCU之間的程序代碼移植性不強(qiáng)。
Hal library,Hal是hardware abstraction layer的縮寫,中文名為:hardware abstraction layer,Hal library項(xiàng)目一般使用cube軟件生成項(xiàng)目。Hal庫是ST公司針對(duì)STM32單片機(jī)開發(fā)的最新抽象層嵌入式軟件,更便于實(shí)現(xiàn)STM32產(chǎn)品的最大可移植性。其優(yōu)點(diǎn)是開發(fā)工程師不需要關(guān)注MCU模型,只需要專注于功能軟件的開發(fā)工作。它是未來的主要發(fā)展方向,并在不斷更新。建議您在正常使用時(shí),它會(huì)自動(dòng)更新或關(guān)閉。否則,將在更新前調(diào)試的代碼將無法正常工作。設(shè)置多維數(shù)據(jù)集軟件的方法點(diǎn)幫助,然后選擇手動(dòng)更新。詳見圖。
根據(jù)我們的工程師和我的研發(fā)經(jīng)驗(yàn),我們一開始使用標(biāo)準(zhǔn)庫函數(shù)。后來我們發(fā)現(xiàn),St推出Hal庫后,我們逐漸轉(zhuǎn)向Hal庫的開發(fā)。它的優(yōu)勢(shì)在于軟件代碼在不同芯片之間具有很強(qiáng)的可移植性,并且cube軟件生成的項(xiàng)目指定了自己代碼的位置。如果不按規(guī)定編寫,cube再次生成項(xiàng)目時(shí)會(huì)覆蓋自己的代碼,進(jìn)一步增強(qiáng)了代碼的可移植性。
另外,如果需要修改MCU的功能,如添加新的GPIO或串口,在使用標(biāo)準(zhǔn)庫函數(shù)時(shí),需要復(fù)制其他串口的初始化代碼,然后手動(dòng)修改。使用Hal庫時(shí),您不需要這樣做。您只需將設(shè)置添加到多維數(shù)據(jù)集并生成它們。
多維數(shù)據(jù)集會(huì)自動(dòng)為您生成初始化代碼。
綜上所述,建議新手直接使用Hal庫,使用起來更方便,開發(fā)所需的軟件功能也更快。復(fù)雜的寄存器配置工作可以交給cube軟件,這也符合未來發(fā)展的主流思路。
hal庫和固件庫有什么區(qū)別?
ST提供了兩個(gè)固件庫:標(biāo)準(zhǔn)庫和Hal庫。在上市之初,STM32芯片只提供了豐富而全面的標(biāo)準(zhǔn)庫,極大地方便了用戶程序的開發(fā),受到了廣大開發(fā)板的高度贊揚(yáng)。同時(shí),它也積累了大量的標(biāo)準(zhǔn)庫用戶,對(duì)于有STM32基礎(chǔ)的ST學(xué)生必須非常熟悉標(biāo)準(zhǔn)庫。我們目前所有的stm32f1開發(fā)板和explorer stm32f407開發(fā)板都是標(biāo)準(zhǔn)庫。目前,大多數(shù)在線學(xué)習(xí)材料和源代碼都是標(biāo)準(zhǔn)庫。
2014年前后,St在標(biāo)準(zhǔn)庫的基礎(chǔ)上推出了Hal庫。事實(shí)上,Hal庫和標(biāo)準(zhǔn)庫本質(zhì)上是相同的。它們都提供了底層的硬件操作API,并且它們的用法是相似的。具有標(biāo)準(zhǔn)庫基礎(chǔ)的學(xué)生易于使用HAL文庫。在我看來,st official近年來一直在推廣Hal庫的原因是
因?yàn)镠al的結(jié)構(gòu)更容易集成stm32cube,而stm32cubemx是st近年來大力推薦的程序
生成和開發(fā)工具。因此,St只為近兩年新發(fā)布的STM32芯片提供Hal庫。在新的STM32芯片中,Hal庫被用來逐步淘汰標(biāo)準(zhǔn)庫。
那么多學(xué)生不禁要問,我們用的是Hal圖書館還是標(biāo)準(zhǔn)圖書館?這里我們要說的是Hal庫和
標(biāo)準(zhǔn)庫功能非常強(qiáng)大,開發(fā)標(biāo)準(zhǔn)庫支持的芯片非常方便實(shí)用。而且,大多數(shù)網(wǎng)絡(luò)數(shù)據(jù)和程序都是用標(biāo)準(zhǔn)庫來解釋的。您不必?fù)?dān)心您是在學(xué)習(xí)Hal庫還是標(biāo)準(zhǔn)庫
無論您使用哪種庫,只要您了解STM32的精髓,任何庫都是一種工具,使用起來非常方便。學(xué)習(xí)一個(gè)庫,另一個(gè)庫也很容易使用,也很容易改變程序開發(fā)的思路。如果您是STM32]的專家,并且長期從事STM32的開發(fā),那么您必須對(duì)標(biāo)準(zhǔn)庫和Hal庫都有一定的了解,這樣您才能安心地進(jìn)行項(xiàng)目開發(fā)。