硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3382|回复: 0
收起左侧

[HAL] 发现HAL库没有专门的外部中断EXTI文件了,整合到GPIO里面

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115728
QQ
发表于 2018-7-20 11:47:06 | 显示全部楼层 |阅读模式
HAL库的EXTI整的真简单,直接合并到GPIO配置里面了。
1、初始化实现地区是方便了不少
  1. /**
  2.   * @brief  Configures EXTI lines 15 to 10 (connected to PC.13 pin) in interrupt mode
  3.   * @param  None
  4.   * @retval None
  5.   */
  6. static void EXTI15_10_IRQHandler_Config(void)
  7. {
  8.   GPIO_InitTypeDef   GPIO_InitStructure;

  9.   /* Enable GPIOC clock */
  10.   __HAL_RCC_GPIOC_CLK_ENABLE();

  11.   /* Configure PC.13 pin as input floating */
  12.   GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;
  13.   GPIO_InitStructure.Pull = GPIO_NOPULL;
  14.   GPIO_InitStructure.Pin = GPIO_PIN_13;
  15.   HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);

  16.   /* Enable and set EXTI lines 15 to 10 Interrupt to the lowest priority */
  17.   HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);
  18.   HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
  19. }
复制代码


2、中断函数:
  1. /**
  2.   * @brief  This function handles external lines 15 to 10 interrupt request.
  3.   * @param  None
  4.   * @retval None
  5.   */
  6. void EXTI15_10_IRQHandler(void)
  7. {
  8.   HAL_GPIO_EXTI_IRQHandler(TAMPER_BUTTON_PIN);
  9. }
复制代码


3、中断回调,一般用户任务都是在回调里面处理
  1. /**
  2.   * @brief EXTI line detection callbacks
  3.   * @param GPIO_Pin: Specifies the pins connected EXTI line
  4.   * @retval None
  5.   */
  6. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  7. {
  8.   if (GPIO_Pin == GPIO_PIN_13)
  9.   {
  10.     /* Toggle LED1 */
  11.     BSP_LED_Toggle(LED1);
  12.   }
  13. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-14 21:17 , Processed in 0.354630 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表