zoukankan      html  css  js  c++  java
  • HAL之EXIT

    在STM32cubeMX中

    1 在GPIO管脚上选定EXIT功能

    2 在GPIO模式中设定触发边沿类型

    3 在NVIC中设定NVIC分组及使能EIXT_Line0_interrupt

    在MDK中的GPIO.C中编写中断回调函数: HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)(即中断发生后希望做什么事情,判断中断是否发生、发生后清标志已经由HAL_GPIO.C中的HAL_GPIO_EXTI_IRQHandler做过了)。

    理解HAL库的的结构:

    1中断发生后在stm32f1xx_it.c中进入对应中断向量表的入口函数void EXTI0_IRQHandler(void),该函数调用了HAL_GPIO.C中的HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0),实参就是我们配置的外中断管脚

    2在void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)中判断是否中断发生、清理标志,并调用用户需编写的回调函数HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

    3注意库函数编写时并不知道我们怎么配置,所以它的回调函数用了“__weak”关键词和#define UNUSED(x) ((void)(x))防止编译器出错和结构清晰的只让用户关注功能回调函数就可以了。

    __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    {
      /* Prevent unused argument(s) compilation warning */
      UNUSED(GPIO_Pin);
      /* NOTE: This function Should not be modified, when the callback is needed,
               the HAL_GPIO_EXTI_Callback could be implemented in the user file
       */
    }

  • 相关阅读:
    H3C IS-IS基础配置
    H3C OSPF实验大集合(IPv4)
    H3C OSPF实验大集合(IPv6)
    H3C RIP实验大集合
    H3C IPv4和IPv6负载均衡
    H3C IPv4与ipv6静态路由
    H3C 配置dns及arp
    H3C 配置DHCP服务器
    H3C 多生成树MSTP
    H3C 配置ftp服务器
  • 原文地址:https://www.cnblogs.com/jieruishu/p/7353962.html
Copyright © 2011-2022 走看看