在學習 STM32 的時候,你學的是標準外設庫還是HAL庫?
過去大家都使用標準外設庫進行開發,因為它是對STM32芯片的完整封裝,包括所有標準器件外設的器件驅動器。但隨著STM32的發展,目前標準外設庫已停止更新,未來會逐漸被淘汰,由HAL庫取而代之。
HAL是 ST 公司主推的 STM32Cube 生態系統的器件驅動庫,STM32Cube 生態系統是個高效的生產力工具,包含豐富的工具軟件和器件驅動庫。
目前,HAL 庫已經支持STM32 全線產品。
所以,現在學習 STM32 開發,應該學習基于STM32Cube 生態系統的開發方式。
01
STM32Cube是什么?
在 ST 公司的發展過程中,STM 系列嵌入式單片機也得到了飛速發展,目前 STM32 系列單片機(MCU)是國內市場占有率最高的32位單片機。從誕生至今,STM32 的開發方式已經發生了很大的變化。
2014年,ST公司推出了HAL庫和MCU圖形化配置軟件STM32CubeMX;
2019年4月,ST公司正式推出了IDE工具軟件STM32CubeIDE 1.0.0;
2020年2月,ST公司正式推出了STM32CubeMonitor 1.0.0。
至此,一個完整的 STM32Cube 生態系統誕生了。
▲STM32Cube生態系統
02
為什么要選擇STM32Cube?
STM32Cube 生態系統包括嵌入式軟件和軟件工具兩大部分。
嵌入式軟件
包括各個 STM32 系列 MCU 的固件庫和一些擴展庫,固件庫包含 STM32 MCU 的 HAL 驅動庫和移植好的各種中間件,例如嵌入式操作系統 FreeRTOS、文件系統FatFS等。
▲STM32Cube生態系統的工具軟件及其作用
軟件工具
STM32Cube 生態系統的軟件工具支持配置、開發、燒錄和監測的整個流程。其中,STM32CubeMX和STM32CubeIDE是STM32Cube 生態系統的兩個核心軟件。
·STM32CubeMX用于MCU片上資源和外設的圖形化配置,可以生成多種IDE軟件的項目框架和外設初始化C語言代碼,可大大提高開發效率。
·STM32CubeIDE是一個STM32編程IDE軟件,使用STM32CubeIDE可以編程、編譯、下載和調試。STM32CubeIDE完全可以替代Keil或IAR的商業軟件的功能。
03
STM32Cube開發方式有什么優勢?
我們稱使用 STM32CubeMX 和 STM32CubeIDE 的開發方式為 STM32Cube 開發方式,這種開發方式有如下的優點:
·使用的軟件都是ST公司提供的免費軟件,避免了使用盜版軟件可能出現的風險。
·使用STM32CubeMX進行MCU可視化配置并生成初始化代碼可大大提高工作效率,并且生成的代碼準確性高,結構性好,降低了STM32開發的學習難度。
·STM32Cube生態系統具有豐富的嵌入式軟件庫資源,除了ST官方的MCU固件庫和擴展庫,還有很多第三方的中間件和擴展庫,可縮短項目開發時間。
現在,ST公司已經淘汰了標準外設庫,全力推進 STM32Cube 生態系統的應用。所以,學習 STM32 開發應該學習 STM32Cube 開發方式。
04
如何學習STM32Cube開發?
市面上介紹 STM32 開發的書比較多,但是很多書是基于標準外設庫編程的,內容早已過時。介紹HAL庫編程的書比較少,有的書在介紹HAL庫編程時還帶有標準庫的印記,并沒有完全發揮STM32CubeMX的作用,且這些介紹HAL庫編程的書都采用MDK作為開發軟件。
STM32CubeIDE 1.0.0 是在2019年4月推出的,推出的時間比較晚,所以一直沒有介紹使用 STM32CubeMX 和 STM32CubeIDE 進行 STM32 開發的書,直到《STM32Cube高效開發教程》的出現。
《STM32Cube高效開發教程》以STM32CubeMX和 STM32CubeIDE 為開發軟件,以 STM32F407為例,全面而系統地介紹 STM32 的開發,包括相關工具軟件的使用、STM32 片上資源和外設的 HAL 編程方法、FreeRTOS 等中間件的編程開發方法。
《STM32Cube高效開發教程》內容很多,所以分為基礎篇和高級篇兩本。基礎篇介紹 STM32Cube 開發方式所用的工具軟件,以及 STM32F407 系統功能和常用外設的使用。
基礎篇共 22 章,分為兩大部分。
●第一部分是軟硬件基礎,介紹STM32Cube生態系統的組成,介紹STM32CubeMX、STM32CubeIDE、STM32CubeMonitor軟件的使用,介紹STM32F407的基本架構和最小系統電路原理。
●第二部分介紹STM32F407系統功能和常用外設的原理和編程方法,包括中斷系統原理和使用、DMA原理和使用、低功耗原理和使用,以及定時器、RTC、ADC、USART、SPI、I2C等常用外設的編程方法。
高級篇介紹固件庫中一些中間件的使用,還介紹一些高級接口的使用。高級篇共 22 章,內容分為三大部分。
●第一部分是嵌入式操作系統FreeRTOS的使用,包含11章內容,全面介紹了FreeRTOS各種功能的使用,包括任務管理、中斷管理、進程間通信技術等,其中進程間通信技術包括隊列、信號量、互斥量、事件組、任務通知、流緩沖區和消息緩沖區。
●第二部分是使用FatFS管理文件系統,包含6章內容。這一部分介紹了在SPI接口Flash芯片上移植FatFS的過程,在SD卡、U盤上使用FatFS管理文件系統的方法。
●第三部分是圖片的獲取與顯示,包含5章內容。這一部分介紹了BMP和JPG圖片文件的讀寫和顯示,電阻式觸摸屏和電容式觸摸屏的使用,以及簡單的GUI程序設計方法。
05
選擇這套書學習
STM32Cube開發有哪些好處?
STM32 是軟硬件結合的編程,程序需要在開發板上運行,才能看到效果。為了讓讀者更好地理解書中介紹的原理,以及看到示例運行的效果,本書提供了多種配套資源。
審核編輯 :李倩
-
單片機
+關注
關注
6067文章
44969瀏覽量
649197 -
嵌入式
+關注
關注
5147文章
19616瀏覽量
316462 -
STM32
+關注
關注
2291文章
11027瀏覽量
363782
原文標題:玩單片機的你,了解STM32Cube開發嗎?
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
意法半導體根據特定負載需求量身定制解決方案
STM32Cube學習筆記 (十六篇全)
stm32cube固件庫導入,已經有低版本庫,導入更高版本的庫出現問題,怎么解決?
STM32f103RE FatFs初始化導致DMA傳輸異常怎么解決?
STM32CUBE programmer軟件為什么打不開?
cube stm32g030f6p6 adc analog watchdog1為什么無法配置?
win7 64位系統STM32CubeMX安裝完成后數據包無法升級到最新版本,怎么解決?
STM32G474利用高精度HRTIM怎么捕獲外部波形計算波形頻率?
如何在STM32CubeMX中集成Flexible Safety RTOS

如何在STM32f4系列開發板上部署STM32Cube.AI,
X-CUBE-CLASSB以及生態系統為何如此重要
瑞薩電子EZ-CUBE3操作指南
瑞薩e2studio----使用EZ-CUBE3燒錄

評論