STM32HAL庫中斷函式原理

2021-10-05 07:25:09 字數 1109 閱讀 5121

hal_uart_receive_it函式分析

hal_statustypedef hal_uart_receive_it

(uart_handletypedef *huart, uint8_t *pdata, uint16_t size)

/* process locked */

//設定程序鎖:可以理解為接受過程中不被其他程式干擾

__hal_lock

(huart)

; huart->prxbuffptr = pdata;

//賦值

huart->rxxfersize = size;

huart->rxxfercount = size;

huart->errorcode = hal_uart_error_none;

//將錯誤碼設定為無錯誤

huart->rxstate = hal_uart_state_busy_rx;

//將接收狀態設定為忙

/* process unlocked */

__hal_unlock

(huart)

;//解鎖

/* enable the uart parity error interrupt */

__hal_uart_enable_it

(huart, uart_it_pe)

;//使能奇偶校驗錯誤中斷

/* enable the uart error interrupt: (frame error, noise error, overrun error) */

__hal_uart_enable_it

(huart, uart_it_err)

;//使能錯誤中斷

/* enable the uart data register not empty interrupt */

__hal_uart_enable_it

(huart, uart_it_rxne)

;//使能資料暫存器非空中斷,資料暫存器中有值就中斷。即使能接收中斷

return hal_ok;

//返回ok狀態

}else

}

傳送函式同理。

STM32 HAL庫中斷的大概流程

1.初始化相應的gpio 定時器等中斷源不必多說 2.設定優先順序 啟動函式等 user code begin 1 void exti9 5 irqhandler void hal gpio exti irqhandler gpio pin 7 這個函式是hal庫函式,可以追蹤到源頭 void ha...

STM32 HAL庫學習筆記

1 系統時鐘 一般用stm32cube生成,使用者只需要會用stm32cube就行。2 gpio輸出void led gpio config void 3 gpio輸入void key gpio config void 4 外部中斷void exti key config void void ext...

STM32 HAL庫學習筆記

1 普通函式與 函式的區別 對普通函式的呼叫 呼叫程式發出對普通函式的呼叫後,程式執行立即轉向被呼叫函式執行,直到被呼叫函式執行完畢後,再返 用程式繼續執行。從發出呼叫的程式的角度看,這個過程為 呼叫 等待被呼叫函式執行完畢 繼續執行 對 函式呼叫 呼叫程式發出對 函式的呼叫後,不等函式執行完畢,立...