stm32中库函数和hal库的区别
今天在b站看一個(gè)關(guān)于嵌入式的視頻,講述使用stm32cube軟件的。了解這些的小伙伴們應(yīng)該知道STM32CubeMX
是意法半導(dǎo)體推出的圖形化配置工具,通過傻瓜化的操作便能實(shí)現(xiàn)相關(guān)配置,最終能夠生成C語言代碼,支持多種工具鏈,比如MDK、IAR For ARM、TrueStudio等。尤其值得一提的是,TrueStudio已經(jīng)被ST收購,提供完全免費(fèi)的版本,并且,通過插件式安裝,可以將STM32CubeMX集成在一個(gè)IDE,使用十分方便。下面貼一個(gè)關(guān)于這個(gè)軟件的基本使用教程CubeMX基本使用教程。
我們要討論的hal庫是st公司為了更方便地進(jìn)行stm32之間的移植而開發(fā)的庫,通用性很強(qiáng),在不同的兩款stm32芯片之間的移植基本上不需要修改。之前使用的標(biāo)準(zhǔn)庫都是基于寄存器的操作。寄存器版本使用較麻煩,每個(gè)設(shè)置都要去查看芯片datasheet,好處是可以讓你熟悉芯片的寄存器配置。庫函數(shù)是基于寄存器版本進(jìn)行二次封裝后推出的,它的優(yōu)勢(shì)就是寄存器版本的劣勢(shì),方便了使用,不再需要手動(dòng)去配置寄存器,使用更方便了。但是它的劣勢(shì)就是HAL的優(yōu)勢(shì),就是每次修改MCU功能,都需要手動(dòng)去修改功能,而且自己修改也不能保證正確性,程序代碼在不同MCU之間的移植性不強(qiáng)。
HAL庫,HAL是Hardware Abstraction Layer的縮寫,中文名稱是:硬件抽象層,HAL庫工程一般使用Cube軟件來生成工程。HAL庫是ST公司為STM32的MCU最新推出的抽象層嵌入式軟件,更方便的實(shí)現(xiàn)跨STM32產(chǎn)品的最大可移植性。優(yōu)勢(shì)就是不需要開發(fā)工程師再關(guān)注所用MCU型號(hào),只需要專注所以要的功能軟件開發(fā)工作。而且是未來主推的方向,正在不斷的推出更新。HAL庫推出的同時(shí),也加入了很多第三方的中間件,有RTOS,USB,TCP / IP和圖形等等。和標(biāo)準(zhǔn)庫對(duì)比起來,STM32的HAL庫更加的抽象,ST最終的目的是要實(shí)現(xiàn)在STM32系列MCU之間無縫移植,甚至在其他MCU也能實(shí)現(xiàn)快速移植。
所以我們應(yīng)該與時(shí)俱進(jìn),使用更先進(jìn)的hal庫吧。
貼一個(gè)討論帖
stm32是用hal庫,還是標(biāo)準(zhǔn)庫?懂行的介紹一下
總結(jié)
以上是生活随笔為你收集整理的stm32中库函数和hal库的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「趣学前端」filter滤镜,CSS的P
- 下一篇: cocos creater ios端 字