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
       */
    }

  • 相关阅读:
    用户和组管理
    权限管理
    文件查找
    文件管理 2
    文件管理
    2016多校训练3_1007(hdu5758 Explorer Bo)
    poj3334(Connected Gheeves)
    POJ1015-Jury Compromise
    使用python来访问Hadoop HDFS存储实现文件的操作
    微信H5自动播放音乐,视频解决方案
  • 原文地址:https://www.cnblogs.com/jieruishu/p/7353962.html
Copyright © 2011-2022 走看看