STM32G474xx HAL用户手册
宏定义 | 函数
stm32g4xx_hal_comp.c 文件参考

COMP HAL模块驱动程序。该文件提供了用于管理COMP外设以下功能的固件函数:+ 初始化和去初始化函数+ 外设控制函数+ 外设状态函数。 更多...

#include "stm32g4xx_hal.h"

转到此文件的源代码。

宏定义

#define COMP_DELAY_STARTUP_US   (5UL)
#define COMP_DELAY_VOLTAGE_SCALER_STAB_US   (200UL)
#define COMP_OUTPUT_LEVEL_BITOFFSET_POS   (30UL)

函数

HAL_StatusTypeDef HAL_COMP_Init (COMP_HandleTypeDef *hcomp)
 根据COMP_InitTypeDef中的指定参数初始化COMP并初始化关联的句柄。
HAL_StatusTypeDef HAL_COMP_DeInit (COMP_HandleTypeDef *hcomp)
 去初始化COMP外设。
__weak void HAL_COMP_MspInit (COMP_HandleTypeDef *hcomp)
 初始化COMP MSP。
__weak void HAL_COMP_MspDeInit (COMP_HandleTypeDef *hcomp)
 去初始化COMP MSP。
HAL_StatusTypeDef HAL_COMP_RegisterCallback (COMP_HandleTypeDef *hcomp, HAL_COMP_CallbackIDTypeDef CallbackID, pCOMP_CallbackTypeDef pCallback)
 注册用户COMP回调,用于替代弱预定义回调。
HAL_StatusTypeDef HAL_COMP_UnRegisterCallback (COMP_HandleTypeDef *hcomp, HAL_COMP_CallbackIDTypeDef CallbackID)
 注销COMP回调,COMP回调被重定向到弱预定义回调。
HAL_StatusTypeDef HAL_COMP_Start (COMP_HandleTypeDef *hcomp)
 启动比较器。
HAL_StatusTypeDef HAL_COMP_Stop (COMP_HandleTypeDef *hcomp)
 停止比较器。
void HAL_COMP_IRQHandler (COMP_HandleTypeDef *hcomp)
 比较器IRQ处理程序。
HAL_StatusTypeDef HAL_COMP_Lock (COMP_HandleTypeDef *hcomp)
 锁定所选比较器的配置。
uint32_t HAL_COMP_GetOutputLevel (const COMP_HandleTypeDef *hcomp)
 返回所选比较器的输出电平(高或低)。
__weak void HAL_COMP_TriggerCallback (COMP_HandleTypeDef *hcomp)
 比较器触发回调。
HAL_COMP_StateTypeDef HAL_COMP_GetState (const COMP_HandleTypeDef *hcomp)
 返回COMP句柄状态。
uint32_t HAL_COMP_GetError (const COMP_HandleTypeDef *hcomp)
 返回COMP错误代码。

详细说明

COMP HAL模块驱动程序。该文件提供了用于管理COMP外设以下功能的固件函数:+ 初始化和去初始化函数+ 外设控制函数+ 外设状态函数。

作者:
MCD应用团队
注意:

版权所有 (c) 2019 STMicroelectronics。保留所有权利。

本软件根据LICENSE文件中规定的条款进行许可,该文件位于本软件组件的根目录中。如果本软件没有随附LICENSE文件,则按"原样"提供。

  ==============================================================================
          ##### COMP外设特性 #####
  ==============================================================================

  [..]
      STM32G4xx器件系列集成了七个模拟比较器实例:
      COMP1、COMP2、COMP3、COMP4、COMP5、COMP6和COMP7。
      (#) 比较器的负输入(反相输入)和正输入(非反相输入)
          可以设置为内部参考或GPIO引脚
          (参考手册中的GPIO列表)。

      (#) 比较器输出电平可通过HAL_COMP_GetOutputLevel()获取,
          并可重定向到其他外设:GPIO引脚(比较器的Alternate Functions模式),
          定时器。
          (参考手册中的GPIO列表)。

      (#) 比较器具有通过EXTI控制器的中断能力,
          支持从睡眠和停止模式唤醒。

          从相应的IRQ处理程序中,可以使用宏__HAL_COMP_COMPx_EXTI_GET_FLAG()
          检索正确的中断源。

            ##### 如何使用本驱动程序 #####
  ==============================================================================
  [..]
      本驱动程序提供了用于配置和编程STM32G4xx器件比较器实例的函数。

      要使用比较器,请执行以下步骤:

      (#)  通过实现HAL_COMP_MspInit()初始化COMP底层资源:
      (++) 使用HAL_GPIO_Init()将连接到比较器正负输入的GPIO配置为模拟模式。
      (++) 如需要,使用HAL_GPIO_Init()将连接到比较器输出的GPIO配置为Alternate Function模式。
      (++) 如需要,使用HAL_GPIO_Init()函数配置EXTI线为中断模式并选择所需的灵敏度来启用COMP中断,
           然后使用HAL_NVIC_EnableIRQ()函数启用比较器中断向量。

      (#)  使用HAL_COMP_Init()函数配置比较器:
      (++) 选择负输入(反相输入)
      (++) 选择正输入(非反相输入)
      (++) 选择滞后特性
      (++) 选择消隐源
      (++) 选择输出极性

      -@@- HAL_COMP_Init()内部调用__HAL_RCC_SYSCFG_CLK_ENABLE()
          以使能比较器的内部控制时钟。
          然而,这是一种传统策略。在未来的STM32系列中,
          COMP时钟使能必须在"HAL_COMP_MspInit()"中由用户实现。
          因此,为了兼容性,建议在"HAL_COMP_MspInit()"中实现__HAL_RCC_SYSCFG_CLK_ENABLE()。

      (#)  可以通过再次调用HAL_COMP_Init()函数并使用新的输入结构参数值
          动态重新配置比较器。

      (#)  使用HAL_COMP_Start()函数使能比较器。

      (#)  使用HAL_COMP_TriggerCallback()或HAL_COMP_GetOutputLevel()函数
          管理比较器输出(事件和输出电平)。

      (#)  使用HAL_COMP_Stop()函数禁用比较器。

      (#)  使用HAL_COMP_DeInit()函数去初始化比较器。

      (#)  为了安全起见,可以使用HAL_COMP_Lock()函数锁定比较器配置。
          唯一解锁比较器的方法是设备硬件复位。

    *** 回调注册 ***
    =============================================
    [..]

     编译标志USE_HAL_COMP_REGISTER_CALLBACKS设置为1时,
     允许用户动态配置驱动程序回调。
     使用函数HAL_COMP_RegisterCallback()
     注册中断回调。
    [..]

     函数HAL_COMP_RegisterCallback()允许注册以下回调:
       (+) TriggerCallback       : COMP触发回调。
       (+) MspInitCallback       : Msp初始化回调。
       (+) MspDeInitCallback     : Msp去初始化回调。
     此函数接受HAL外设句柄、回调ID和用户回调函数指针作为参数。
    [..]

     使用函数HAL_COMP_UnRegisterCallback将回调重置为默认的弱函数。
    [..]

     HAL_COMP_UnRegisterCallback接受HAL外设句柄和回调ID作为参数。
     此函数允许重置以下回调:
       (+) TriggerCallback       : COMP触发回调。
       (+) MspInitCallback       : Msp初始化回调。
       (+) MspDeInitCallback     : Msp去初始化回调。
    [..]

     默认情况下,在HAL_COMP_Init()之后且状态为HAL_COMP_STATE_RESET时,
     所有回调都设置为相应的弱函数:
     例如HAL_COMP_TriggerCallback()。
     MspInit和MspDeInit函数为例外,它们仅在这些回调为null(在事先未注册)时
     在HAL_COMP_Init()/HAL_COMP_DeInit()中被重置为传统弱函数。
    [..]

     如果MspInit或MspDeInit不为null,则HAL_COMP_Init()/HAL_COMP_DeInit()
     无论状态如何都会保留并使用用户的MspInit/MspDeInit回调(事先注册的)。
    [..]

     回调只能在HAL_COMP_STATE_READY状态下注册/注销。
     MspInit/MspDeInit函数例外,它们可以在HAL_COMP_STATE_READY或HAL_COMP_STATE_RESET状态下注册/注销,
     因此在Init/DeInit期间可以使用已注册的用户MspInit/DeInit回调。
    [..]

     然后,用户首先使用HAL_COMP_RegisterCallback()注册MspInit/MspDeInit用户回调,
     然后再调用HAL_COMP_DeInit()或HAL_COMP_Init()函数。
    [..]

     当编译标志USE_HAL_COMP_REGISTER_CALLBACKS设置为0或未定义时,
     回调注册功能不可用,所有回调都设置为相应的弱函数。

  

定义于文件 stm32g4xx_hal_comp.c