STM32 HAL庫的定時器中斷回調函數跟串口中斷回調函數


void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
     //添加回調后的程序邏輯 
if (htim->Instance == htim2.Instance) //判斷是否定時器2 { } } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
     //添加回調后的程序邏輯
if(huart->Instance == USART1) //判斷是否串口1 { } }

  中斷回調函數是在某個中斷發生完成之后調用的,在用Cubemx生成的代碼中,其實已經有生成中斷回調函數了的,不過那個我們可以不用管,自己在項目里重寫中斷回調函數以及程序邏輯即可。

  

  從上圖我們可以看到,自動生成的代碼中,中斷回調函數都有一個__weak 關鍵字,加上了__weak 修飾符的函數,用戶可以在用戶文件中重新定義一個同名函數,最終編譯器編譯的時候,會選擇用戶定義的函數,如果用戶沒有重新定義這個函數,那么編譯器就會執行__weak 聲明的函數,並且編譯器不會報錯。所以我們可以在別的地方定義一個相同名字的函數,而不必也盡量不要修改之前的函數。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM