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