在學(xué)習(xí) STM32 的時(shí)候,你學(xué)的是標(biāo)準(zhǔn)外設(shè)庫(kù)還是HAL庫(kù)?
過(guò)去大家都使用標(biāo)準(zhǔn)外設(shè)庫(kù)進(jìn)行開(kāi)發(fā),因?yàn)樗菍?duì)STM32芯片的完整封裝,包括所有標(biāo)準(zhǔn)器件外設(shè)的器件驅(qū)動(dòng)器。但隨著STM32的發(fā)展,目前標(biāo)準(zhǔn)外設(shè)庫(kù)已停止更新,未來(lái)會(huì)逐漸被淘汰,由HAL庫(kù)取而代之。
HAL是 ST 公司主推的 STM32Cube 生態(tài)系統(tǒng)的器件驅(qū)動(dòng)庫(kù),STM32Cube 生態(tài)系統(tǒng)是個(gè)高效的生產(chǎn)力工具,包含豐富的工具軟件和器件驅(qū)動(dòng)庫(kù)。
目前,HAL 庫(kù)已經(jīng)支持STM32 全線產(chǎn)品。
所以,現(xiàn)在學(xué)習(xí) STM32 開(kāi)發(fā),應(yīng)該學(xué)習(xí)基于STM32Cube 生態(tài)系統(tǒng)的開(kāi)發(fā)方式。
01
STM32Cube是什么?
在 ST 公司的發(fā)展過(guò)程中,STM 系列嵌入式單片機(jī)也得到了飛速發(fā)展,目前 STM32 系列單片機(jī)(MCU)是國(guó)內(nèi)市場(chǎng)占有率最高的32位單片機(jī)。從誕生至今,STM32 的開(kāi)發(fā)方式已經(jīng)發(fā)生了很大的變化。
2014年,ST公司推出了HAL庫(kù)和MCU圖形化配置軟件STM32CubeMX;
2019年4月,ST公司正式推出了IDE工具軟件STM32CubeIDE 1.0.0;
2020年2月,ST公司正式推出了STM32CubeMonitor 1.0.0。
至此,一個(gè)完整的 STM32Cube 生態(tài)系統(tǒng)誕生了。
▲STM32Cube生態(tài)系統(tǒng)
02
為什么要選擇STM32Cube?
STM32Cube 生態(tài)系統(tǒng)包括嵌入式軟件和軟件工具兩大部分。
嵌入式軟件
包括各個(gè) STM32 系列 MCU 的固件庫(kù)和一些擴(kuò)展庫(kù),固件庫(kù)包含 STM32 MCU 的 HAL 驅(qū)動(dòng)庫(kù)和移植好的各種中間件,例如嵌入式操作系統(tǒng) FreeRTOS、文件系統(tǒng)FatFS等。
▲STM32Cube生態(tài)系統(tǒng)的工具軟件及其作用
軟件工具
STM32Cube 生態(tài)系統(tǒng)的軟件工具支持配置、開(kāi)發(fā)、燒錄和監(jiān)測(cè)的整個(gè)流程。其中,STM32CubeMX和STM32CubeIDE是STM32Cube 生態(tài)系統(tǒng)的兩個(gè)核心軟件。
·STM32CubeMX用于MCU片上資源和外設(shè)的圖形化配置,可以生成多種IDE軟件的項(xiàng)目框架和外設(shè)初始化C語(yǔ)言代碼,可大大提高開(kāi)發(fā)效率。
·STM32CubeIDE是一個(gè)STM32編程IDE軟件,使用STM32CubeIDE可以編程、編譯、下載和調(diào)試。STM32CubeIDE完全可以替代Keil或IAR的商業(yè)軟件的功能。
03
STM32Cube開(kāi)發(fā)方式有什么優(yōu)勢(shì)?
我們稱使用 STM32CubeMX 和 STM32CubeIDE 的開(kāi)發(fā)方式為 STM32Cube 開(kāi)發(fā)方式,這種開(kāi)發(fā)方式有如下的優(yōu)點(diǎn):
·使用的軟件都是ST公司提供的免費(fèi)軟件,避免了使用盜版軟件可能出現(xiàn)的風(fēng)險(xiǎn)。
·使用STM32CubeMX進(jìn)行MCU可視化配置并生成初始化代碼可大大提高工作效率,并且生成的代碼準(zhǔn)確性高,結(jié)構(gòu)性好,降低了STM32開(kāi)發(fā)的學(xué)習(xí)難度。
·STM32Cube生態(tài)系統(tǒng)具有豐富的嵌入式軟件庫(kù)資源,除了ST官方的MCU固件庫(kù)和擴(kuò)展庫(kù),還有很多第三方的中間件和擴(kuò)展庫(kù),可縮短項(xiàng)目開(kāi)發(fā)時(shí)間。
現(xiàn)在,ST公司已經(jīng)淘汰了標(biāo)準(zhǔn)外設(shè)庫(kù),全力推進(jìn) STM32Cube 生態(tài)系統(tǒng)的應(yīng)用。所以,學(xué)習(xí) STM32 開(kāi)發(fā)應(yīng)該學(xué)習(xí) STM32Cube 開(kāi)發(fā)方式。
04
如何學(xué)習(xí)STM32Cube開(kāi)發(fā)?
市面上介紹 STM32 開(kāi)發(fā)的書(shū)比較多,但是很多書(shū)是基于標(biāo)準(zhǔn)外設(shè)庫(kù)編程的,內(nèi)容早已過(guò)時(shí)。介紹HAL庫(kù)編程的書(shū)比較少,有的書(shū)在介紹HAL庫(kù)編程時(shí)還帶有標(biāo)準(zhǔn)庫(kù)的印記,并沒(méi)有完全發(fā)揮STM32CubeMX的作用,且這些介紹HAL庫(kù)編程的書(shū)都采用MDK作為開(kāi)發(fā)軟件。
STM32CubeIDE 1.0.0 是在2019年4月推出的,推出的時(shí)間比較晚,所以一直沒(méi)有介紹使用 STM32CubeMX 和 STM32CubeIDE 進(jìn)行 STM32 開(kāi)發(fā)的書(shū),直到《STM32Cube高效開(kāi)發(fā)教程》的出現(xiàn)。
《STM32Cube高效開(kāi)發(fā)教程》以STM32CubeMX和 STM32CubeIDE 為開(kāi)發(fā)軟件,以 STM32F407為例,全面而系統(tǒng)地介紹 STM32 的開(kāi)發(fā),包括相關(guān)工具軟件的使用、STM32 片上資源和外設(shè)的 HAL 編程方法、FreeRTOS 等中間件的編程開(kāi)發(fā)方法。
《STM32Cube高效開(kāi)發(fā)教程》內(nèi)容很多,所以分為基礎(chǔ)篇和高級(jí)篇兩本。基礎(chǔ)篇介紹 STM32Cube 開(kāi)發(fā)方式所用的工具軟件,以及 STM32F407 系統(tǒng)功能和常用外設(shè)的使用。
基礎(chǔ)篇共 22 章,分為兩大部分。
●第一部分是軟硬件基礎(chǔ),介紹STM32Cube生態(tài)系統(tǒng)的組成,介紹STM32CubeMX、STM32CubeIDE、STM32CubeMonitor軟件的使用,介紹STM32F407的基本架構(gòu)和最小系統(tǒng)電路原理。
●第二部分介紹STM32F407系統(tǒng)功能和常用外設(shè)的原理和編程方法,包括中斷系統(tǒng)原理和使用、DMA原理和使用、低功耗原理和使用,以及定時(shí)器、RTC、ADC、USART、SPI、I2C等常用外設(shè)的編程方法。
高級(jí)篇介紹固件庫(kù)中一些中間件的使用,還介紹一些高級(jí)接口的使用。高級(jí)篇共 22 章,內(nèi)容分為三大部分。
●第一部分是嵌入式操作系統(tǒng)FreeRTOS的使用,包含11章內(nèi)容,全面介紹了FreeRTOS各種功能的使用,包括任務(wù)管理、中斷管理、進(jìn)程間通信技術(shù)等,其中進(jìn)程間通信技術(shù)包括隊(duì)列、信號(hào)量、互斥量、事件組、任務(wù)通知、流緩沖區(qū)和消息緩沖區(qū)。
●第二部分是使用FatFS管理文件系統(tǒng),包含6章內(nèi)容。這一部分介紹了在SPI接口Flash芯片上移植FatFS的過(guò)程,在SD卡、U盤(pán)上使用FatFS管理文件系統(tǒng)的方法。
●第三部分是圖片的獲取與顯示,包含5章內(nèi)容。這一部分介紹了BMP和JPG圖片文件的讀寫(xiě)和顯示,電阻式觸摸屏和電容式觸摸屏的使用,以及簡(jiǎn)單的GUI程序設(shè)計(jì)方法。
05
選擇這套書(shū)學(xué)習(xí)
STM32Cube開(kāi)發(fā)有哪些好處?
STM32 是軟硬件結(jié)合的編程,程序需要在開(kāi)發(fā)板上運(yùn)行,才能看到效果。為了讓讀者更好地理解書(shū)中介紹的原理,以及看到示例運(yùn)行的效果,本書(shū)提供了多種配套資源。
審核編輯 :李倩
-
單片機(jī)
+關(guān)注
關(guān)注
6040文章
44602瀏覽量
637040 -
嵌入式
+關(guān)注
關(guān)注
5088文章
19160瀏覽量
306549 -
STM32
+關(guān)注
關(guān)注
2270文章
10918瀏覽量
356821
原文標(biāo)題:玩單片機(jī)的你,了解STM32Cube開(kāi)發(fā)嗎?
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論