• 資料介紹
  • 在線預覽
  • 相關推薦
申請入駐 產業(yè)圖譜

LAT1241 淺談STM32庫里的回調函數

03/25 14:10
875
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

LAT1241 淺談STM32庫里的回調函數

1.01 MB

回調函數

有人對 STM32 固件庫里的回調函數有些好奇甚至糾結,這里簡單介紹下。其實從用法及功能上講他們并沒有什么特別的,跟其它函數一樣,也是實現特定功能的代碼段。一般來講,所謂回調函數,泛指基于事件觸發(fā)而被調用執(zhí)行的函數,簡單點說,就是條件滿足了就調用的函數,往往會跟函數指針結合起來通過函數指針實現調用。

STM32 固件庫里的回調函數

說到這里,我們具體結合 STM32 外設固件庫里回調函數來聊聊。

首先,作為一個函數庫,里面不存在現存的完整的回調函數。前面的介紹已為此做鋪墊,因為回調函數需要結合具體場景而擬定,作為函數庫根本做不到這一點,它沒法事先知曉發(fā)生某個事件時不同的應用會需要采取怎樣的操作。

其次,STM32 庫函數的確采用了回調機制,并基于可能的各種事件為 STM32 開發(fā)者預留了只有函數定義而無具體內容的空回調函數,或者是只定義了一些基于各類事件的函數指針,具體的回調函數需我們用戶完成并將函數地址賦給相應的函數指針而被調用。簡單點說,庫給我們預留了眾多回調函數接口。

STM32 庫函數里的回調機制及觸發(fā)事件

整體上講,STM32 外設庫里的 API 函數由三部分組成,分別是:

初始化函數

啟動型執(zhí)行函數

回調函數【弱定義函數或回調函數指針,最終得靠用戶具體完成編寫】

這樣的安排,讓整個工程代碼結構比較清晰,可以讓人快速了解庫結構,同時現存的 API 函數大大減少開發(fā)工作量,預留的回調函數接口一方面給開發(fā)者提供了便利,另一方面讓用戶基于不同應用場景自由組織代碼而又不破壞整個軟件架構。

關于 STM32 HAL 庫里的回調函數的幾個常見問題

STM32 庫函數里的回調函數是什么,有何用?

STM32 工程里的回調函數與中斷函數有什么區(qū)別?

STM32 庫函數里的回調函數是否可以不用?

STM32 庫函數里似乎存在著類似半成品的庫回調函數?

基于 STM32 庫來組織用戶回調函數要注意什么?

在線預覽

相關推薦