您好,登錄后才能下訂單哦!
STM32推出了全新的HAL驅動源碼,本文給出GPIO中斷代碼實現的步驟:
步驟1)類似下方初始化用GPIO_InitStruct結構體初始化需要的GPIO,注意Mode參數和NVIC的中斷使能:
GPIO_InitTypeDef GPIO_InitStruct;
/* Configure GPIO pins : PB6 */
__GPIOB_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_6;//
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; // interrupt mode , rising
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI4_15_IRQn,0,0);
HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
步驟2)類似下方,根據GPIO相連的EXIT線實現中斷處理函數,記得內部調用HAL_GPIO_EXTI_IRQHandler()函數:
void EXTI4_15_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_6);
}
步驟3)類似下方實現(替換)weak回調函數HAL_GPIO_EXTI_Callback(),這個函數是STM代碼框架自動調用的:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
// 內部實現自己的處理邏輯。
}
完畢!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。