二 具體使用過程
1 hal(硬體抽象層) 初始化
2hal io
操作流程
--hal functions
與內部資料處理類似傳送/接收,讀/寫.
提供三種處理模型
a
pollingmode
查詢模式,
hal函式在資料處理完成(阻塞)後返回處理狀態(
ok or
err),可以通過
hal_ppp_getstate
()獲取具體錯誤資訊
<
img src
="d99d3f80-e264-472f-a9db-a088dc0c5c20_files/6ae88b28-8824-40a4-a8ea-71c3b1b5a415.png"
border
="0"
alt=
""style
="font-size: 10.5pt; line-height: 1.5;"
name=""
width
="416"
height
="205"
>
b
interrupt
mode
中斷模式,啟動資料處理並開啟了相應中斷後返回處理狀態;該模式下,驅動程式宣告了
4個函式
•hal_ppp_process_it
():啟動中斷處理,一般在使用者檔案中
•hal_ppp_irqhandler
():全域性外設中斷,一般在
stm32f0xx_it.c
中
•__weak hal_ppp_processcpltcallback
():有關處理結束**函式
•__weak hal_ppp_processerrorcallback
():有關錯誤**處理
__weak
弱宣告,使用者可以在應用中重新實現
使能相應的
dma中斷並啟動
dma處理資料後返回處理狀態;操作結束後呼叫**函式通知使用者處理完成;該模式下,驅動程式宣告了
4個函式:
•hal_ppp_process_dma
():啟動
dma過程,一般在使用者檔案中
•hal_ppp_dma_irqhandler
():外設使用的
dma中斷,一般在
stm32f0xx_it.c
中
•__weak hal_ppp_processcpltcallback
():有關過程結束**函式
•__weak hal_ppp_errorcpltcallback
():過程錯誤**函式
如果使用
dma模式,通常在
hal_ppp_mspinit
()**函式中執行
dma初始化
來自為知筆記(wiz)
HAL庫 流水燈
對比標準庫的流程使用hal庫編寫流水燈 標準庫 1.開時鐘 2.初始化gpioinit結構體 3.呼叫gpio init gpiob,gpio initstructure 初始化函式 1 typedef struct 2gpio inittypedef hal流程 1.開時鐘 2.從pinout介面...
HAL庫DMA使用異常問題
1.串列埠接收一旦溢位就會丟資料。串列埠接收滿了,稍等幾秒再重新啟動dma接收函式hal uart receive dma 時,就會丟失資料,而且此時串列埠接收空閒中斷啟動正常,列印出來會發現全是 0 如果接滿後馬上啟動就沒此問題。2.串列埠dma接收與傳送不能單獨停止。如果串列埠同時進行dma傳送...
HAL學習隨記(1)
1.一般情況下用cubemx先對引腳進行初步定義,根據不同的晶元型別生成不同的 初始框架 也就是簡化我們寫微控制器 的量 然後在用mdk去再編寫我們cube生成的初始 這樣在有了cube生成的初始框架的基礎上,微控制器的 會簡單很多。2.stm32一般有暫存器版,標準庫版,hal庫版,他們難度逐一減...