|
HAL库的EXTI整的真简单,直接合并到GPIO配置里面了。
1、初始化实现地区是方便了不少
- /**
- * @brief Configures EXTI lines 15 to 10 (connected to PC.13 pin) in interrupt mode
- * @param None
- * @retval None
- */
- static void EXTI15_10_IRQHandler_Config(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- /* Enable GPIOC clock */
- __HAL_RCC_GPIOC_CLK_ENABLE();
- /* Configure PC.13 pin as input floating */
- GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;
- GPIO_InitStructure.Pull = GPIO_NOPULL;
- GPIO_InitStructure.Pin = GPIO_PIN_13;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
- /* Enable and set EXTI lines 15 to 10 Interrupt to the lowest priority */
- HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);
- HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
- }
复制代码
2、中断函数:
- /**
- * @brief This function handles external lines 15 to 10 interrupt request.
- * @param None
- * @retval None
- */
- void EXTI15_10_IRQHandler(void)
- {
- HAL_GPIO_EXTI_IRQHandler(TAMPER_BUTTON_PIN);
- }
复制代码
3、中断回调,一般用户任务都是在回调里面处理
- /**
- * @brief EXTI line detection callbacks
- * @param GPIO_Pin: Specifies the pins connected EXTI line
- * @retval None
- */
- void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
- {
- if (GPIO_Pin == GPIO_PIN_13)
- {
- /* Toggle LED1 */
- BSP_LED_Toggle(LED1);
- }
- }
复制代码
|
|