Files
mcu-codegen-template/Drivers/PY32F040_HAL_Driver/Inc/py32f040_hal_opa.h
T

251 lines
7.0 KiB
C

/**
******************************************************************************
* @file py32f040_hal_opa.h
* @author MCU Application Team
* @brief Header file of OPA HAL module.
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) 2023 Puya Semiconductor Co.
* All rights reserved.</center></h2>
*
* This software component is licensed by Puya under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef PY32F040_HAL_OPA_H
#define PY32F040_HAL_OPA_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "py32f040_hal_def.h"
/** @addtogroup PY32F040_HAL_Driver
* @{
*/
/** @addtogroup OPA
* @{
*/
/* Exported types ------------------------------------------------------------*/
/** @defgroup OPA_Exported_Types OPA Exported Types
* @{
*/
/**
* @brief OPA Init structure definition
*/
typedef struct
{
uint32_t Part; /*!< Specifies the
This parameter must be a value of @ref OPA_PART */
}OPA_InitTypeDef;
/**
* @brief HAL State structures definition
*/
typedef enum
{
HAL_OPA_STATE_RESET = 0x00000000U, /*!< OPA is not yet Initialized */
HAL_OPA_STATE_READY = 0x00000001U, /*!< OPA is initialized and ready for use */
HAL_OPA_STATE_BUSY = 0x00000004U, /*!< OPA is enabled and running in normal mode */
HAL_OPA_STATE_BUSYLOCKED = 0x00000005U /*!< OPA is locked
only system reset allows reconfiguring the opa. */
}HAL_OPA_StateTypeDef;
/**
* @brief OPA Handle Structure definition
*/
#if (USE_HAL_OPA_REGISTER_CALLBACKS == 1)
typedef struct __OPA_HandleTypeDef
#else
typedef struct
#endif /* USE_HAL_OPA_REGISTER_CALLBACKS */
{
OPA_TypeDef *Instance; /*!< OPA instance's registers base address */
OPA_InitTypeDef Init; /*!< OPA required parameters */
HAL_StatusTypeDef Status; /*!< OPA peripheral status */
HAL_LockTypeDef Lock; /*!< Locking object */
__IO HAL_OPA_StateTypeDef State; /*!< OPA communication state */
#if (USE_HAL_OPA_REGISTER_CALLBACKS == 1)
void (* MspInitCallback) (struct __OPA_HandleTypeDef *hopa);
void (* MspDeInitCallback) (struct __OPA_HandleTypeDef *hopa);
#endif /* USE_HAL_OPA_REGISTER_CALLBACKS */
} OPA_HandleTypeDef;
/**
* @}
*/
#if (USE_HAL_OPA_REGISTER_CALLBACKS == 1)
/**
* @brief HAL OPA Callback ID enumeration definition
*/
typedef enum
{
HAL_OPA_MSP_INIT_CB_ID = 0x01U, /*!< OPA MspInit Callback ID */
HAL_OPA_MSP_DEINIT_CB_ID = 0x02U, /*!< OPA MspDeInit Callback ID */
HAL_OPA_ALL_CB_ID = 0x03U /*!< OPA All ID */
}HAL_OPA_CallbackIDTypeDef;
/**
* @brief HAL OPA Callback pointer definition
*/
typedef void (*pOPA_CallbackTypeDef)(OPA_HandleTypeDef *hopa);
#endif /* USE_HAL_OPA_REGISTER_CALLBACKS */
/* Exported constants --------------------------------------------------------*/
/** @defgroup OPA_Exported_Constants OPA Exported Constants
* @{
*/
/** @defgroup OPA_PART OPA PART
* @{
*/
#define OPA1 0x00000000
#define OPA2 0x00000001
#if defined(OPA_CR1_EN3)
#define OPA3 0x00000002
#endif
/**
* @}
*/
/**
* @}
*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup OPA_Private_Constants OPA Private Constants
* @brief OPA Private constants and defines
* @{
*/
/* NONINVERTING bit position in OTR & HSOTR */
#define OPA_INPUT_NONINVERTING (8U) /*!< Non inverting input */
/**
* @}
*/
/* Exported macros -----------------------------------------------------------*/
/** @defgroup OPA_Exported_Macros OPA Exported Macros
* @{
*/
/** @brief Reset OPA handle state.
* @param __HANDLE__: OPA handle.
* @retval None
*/
#define __HAL_OPA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_OPA_STATE_RESET)
/**
* @}
*/
/* Include OPA HAL Extended module */
#include "py32f040_hal_opa_ex.h"
/* Exported functions --------------------------------------------------------*/
/** @addtogroup OPA_Exported_Functions
* @{
*/
/** @addtogroup OPA_Exported_Functions_Group1
* @{
*/
/* Initialization/de-initialization functions **********************************/
HAL_StatusTypeDef HAL_OPA_Init(OPA_HandleTypeDef *hopa);
HAL_StatusTypeDef HAL_OPA_DeInit (OPA_HandleTypeDef *hopa);
void HAL_OPA_MspInit(OPA_HandleTypeDef *hopa);
void HAL_OPA_MspDeInit(OPA_HandleTypeDef *hopa);
/**
* @}
*/
/** @addtogroup OPA_Exported_Functions_Group2
* @{
*/
/* I/O operation functions *****************************************************/
HAL_StatusTypeDef HAL_OPA_Start(OPA_HandleTypeDef *hopa);
HAL_StatusTypeDef HAL_OPA_Stop(OPA_HandleTypeDef *hopa);
/**
* @}
*/
/** @addtogroup OPA_Exported_Functions_Group3
* @{
*/
/* Peripheral Control functions ************************************************/
#if (USE_HAL_OPA_REGISTER_CALLBACKS == 1)
/* OPA callback registering/unregistering */
HAL_StatusTypeDef HAL_OPA_RegisterCallback (OPA_HandleTypeDef *hopa, HAL_OPA_CallbackIDTypeDef CallbackId, pOPA_CallbackTypeDef pCallback);
HAL_StatusTypeDef HAL_OPA_UnRegisterCallback (OPA_HandleTypeDef *hopa, HAL_OPA_CallbackIDTypeDef CallbackId);
#endif /* USE_HAL_OPA_REGISTER_CALLBACKS */
HAL_StatusTypeDef HAL_OPA_Lock(OPA_HandleTypeDef *hopa);
/**
* @}
*/
/** @addtogroup OPA_Exported_Functions_Group4
* @{
*/
/* Peripheral State functions **************************************************/
HAL_OPA_StateTypeDef HAL_OPA_GetState(OPA_HandleTypeDef *hopa);
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* PY32F040_HAL_OPA_H */
/************************ (C) COPYRIGHT Puya *****END OF FILE****/