mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
357 lines
14 KiB
C
357 lines
14 KiB
C
/**
|
|
**********************************************************************************************************************
|
|
* @file stm32n6xx_hal_dts.h
|
|
* @author MCD Application Team
|
|
* @brief Header file of DTS HAL module.
|
|
**********************************************************************************************************************
|
|
* @attention
|
|
*
|
|
* Copyright (c) 2023 STMicroelectronics.
|
|
* All rights reserved.
|
|
*
|
|
* This software is licensed under terms that can be found in the LICENSE file
|
|
* in the root directory of this software component.
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
*
|
|
**********************************************************************************************************************
|
|
*/
|
|
|
|
/* Define to prevent recursive inclusion -----------------------------------------------------------------------------*/
|
|
#ifndef STM32N6xx_HAL_DTS_H
|
|
#define STM32N6xx_HAL_DTS_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Includes ----------------------------------------------------------------------------------------------------------*/
|
|
#include "stm32n6xx_hal_def.h"
|
|
|
|
/** @addtogroup STM32N6xx_HAL_Driver
|
|
* @{
|
|
*/
|
|
|
|
/** @addtogroup DTS
|
|
* @{
|
|
*/
|
|
|
|
/* Exported types ----------------------------------------------------------------------------------------------------*/
|
|
|
|
/** @defgroup DTS_Exported_Types DTS Exported Types
|
|
* @{
|
|
*/
|
|
/**
|
|
* @brief HAL DTS states definition
|
|
*/
|
|
typedef enum
|
|
{
|
|
HAL_DTS_STATE_RESET = 0x00U, /*!< DTS not initialized */
|
|
HAL_DTS_STATE_READY = 0x01U, /*!< DTS initialized and ready for use */
|
|
HAL_DTS_STATE_RUNNING_0 = 0x02U, /*!< DTS temperature measure in progress on sensor 0 */
|
|
HAL_DTS_STATE_RUNNING_1 = 0x03U, /*!< DTS temperature measure in progress on sensor 1 */
|
|
HAL_DTS_STATE_RUNNING_BOTH = 0x04U /*!< DTS temperature measure in progress on both sensors */
|
|
} HAL_DTS_StateTypeDef;
|
|
|
|
/**
|
|
* @brief DTS sensors definition
|
|
*/
|
|
typedef enum
|
|
{
|
|
DTS_SENSOR_0 = 0x00U, /*!< DTS sensor 0 */
|
|
DTS_SENSOR_1 = 0x01U, /*!< DTS sensor 1 */
|
|
} HAL_DTS_Sensor;
|
|
|
|
/**
|
|
* @brief DTS handle structure definition
|
|
*/
|
|
#if (USE_HAL_DTS_REGISTER_CALLBACKS == 1)
|
|
typedef struct __DTS_HandleTypeDef
|
|
#else /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
typedef struct
|
|
#endif /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
{
|
|
DTS_TypeDef *Instance; /*!< DTS instance */
|
|
__IO HAL_DTS_StateTypeDef State; /*!< DTS state */
|
|
__IO uint32_t ErrorCode; /*!< DTS error code */
|
|
uint32_t SensorMode[2U]; /*!< DTS sensor modes */
|
|
#if (USE_HAL_DTS_REGISTER_CALLBACKS == 1)
|
|
void (*MspInitCallback)(struct __DTS_HandleTypeDef *hdts); /*!< DTS MSP init callback */
|
|
void (*MspDeInitCallback)(struct __DTS_HandleTypeDef *hdts); /*!< DTS MSP de-init callback */
|
|
void (*TemperatureCallback)(struct __DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor); /*!< DTS temperature callback */
|
|
void (*AlarmACallback)(struct __DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor); /*!< DTS alarm A callback */
|
|
void (*AlarmBCallback)(struct __DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor); /*!< DTS alarm B callback */
|
|
void (*ErrorCallback)(struct __DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor); /*!< DTS error callback */
|
|
#endif /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
} DTS_HandleTypeDef;
|
|
|
|
#if (USE_HAL_DTS_REGISTER_CALLBACKS == 1)
|
|
/**
|
|
* @brief DTS callback ID enumeration definition
|
|
*/
|
|
typedef enum
|
|
{
|
|
HAL_DTS_MSPINIT_CB_ID = 0x00U, /*!< DTS MSP init callback ID */
|
|
HAL_DTS_MSPDEINIT_CB_ID = 0x01U /*!< DTS MSP de-init callback ID */
|
|
} HAL_DTS_CallbackIDTypeDef;
|
|
|
|
/**
|
|
* @brief DTS sensor callback ID enumeration definition
|
|
*/
|
|
typedef enum
|
|
{
|
|
HAL_DTS_SENSOR_TEMPERATURE_CB_ID = 0x00U, /*!< DTS sensor temperature callback ID */
|
|
HAL_DTS_SENSOR_ALARMA_CB_ID = 0x01U, /*!< DTS sensor alarm A callback ID */
|
|
HAL_DTS_SENSOR_ALARMB_CB_ID = 0x02U, /*!< DTS sensor alarm B callback ID */
|
|
HAL_DTS_SENSOR_ERROR_CB_ID = 0x03U, /*!< DTS sensor error callback ID */
|
|
} HAL_DTS_SensorCallbackIDTypeDef;
|
|
|
|
/**
|
|
* @brief DTS callback pointers definition
|
|
*/
|
|
typedef void (*pDTS_CallbackTypeDef)(DTS_HandleTypeDef *hdts);
|
|
typedef void (*pDTS_SensorCallbackTypeDef)(DTS_HandleTypeDef *hdts, HAL_DTS_Sensor Sensor);
|
|
#endif /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
|
|
/**
|
|
* @brief DTS sensor configuration structure definition
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t Mode; /*!< Sensor mode.
|
|
This parameter can be a value of @ref DTS_SensorMode */
|
|
uint32_t Resolution; /*!< Sensor resolution.
|
|
This parameter can be a value of @ref DTS_SensorResolution */
|
|
uint32_t Trigger; /*!< Sensor trigger.
|
|
This parameter can be a value of @ref DTS_SensorTrigger.
|
|
@note This parameter is used only if Mode is set to DTS_SENSOR_MODE_TRIGGER */
|
|
} DTS_SensorConfigTypeDef;
|
|
|
|
/**
|
|
* @brief DTS alarm configuration structure definition
|
|
*/
|
|
typedef struct
|
|
{
|
|
FunctionalState Enable; /*!< Alarm enable/disable */
|
|
float_t Threshold; /*!< Alarm threshold in celsius degree.
|
|
This parameter must be a number between Min_Data = -40 and Max_Data = 125 */
|
|
float_t Hysteresis; /*!< Alarm hysteresis in celsius degree.
|
|
This parameter must be a number between Min_Data = -40 and Max_Data = 125 */
|
|
} DTS_AlarmConfigTypeDef;
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Exported constants ------------------------------------------------------------------------------------------------*/
|
|
|
|
/** @defgroup DTS_Exported_Constants DTS Exported Constants
|
|
* @{
|
|
*/
|
|
|
|
/** @defgroup DTS_ErrorCode DTS error code
|
|
* @{
|
|
*/
|
|
#define HAL_DTS_ERROR_NONE 0x00000000U /*!< No error */
|
|
#define HAL_DTS_ERROR_INVALID_PARAM 0x00000001U /*!< Invalid parameter */
|
|
#define HAL_DTS_ERROR_INVALID_STATE 0x00000002U /*!< Invalid state */
|
|
#define HAL_DTS_ERROR_INVALID_SENSOR_MODE 0x00000004U /*!< Invalid sensor mode */
|
|
#define HAL_DTS_ERROR_INVALID_SAMPLE 0x00000008U /*!< Invalid sample */
|
|
#define HAL_DTS_ERROR_FAULT 0x00000010U /*!< Fault */
|
|
#if (USE_HAL_DTS_REGISTER_CALLBACKS == 1)
|
|
#define HAL_DTS_ERROR_INVALID_CALLBACK 0x00000020U /*!< Invalid callback error */
|
|
#endif /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup DTS_SensorMode DTS sensor mode
|
|
* @{
|
|
*/
|
|
#define DTS_SENSOR_MODE_DISABLE 0x00000000U /*!< No acquisition */
|
|
#define DTS_SENSOR_MODE_SINGLE 0x00000106U /*!< Single acquisition */
|
|
#define DTS_SENSOR_MODE_CONTINUOUS 0x0000010AU /*!< Continuous acquisitions */
|
|
#define DTS_SENSOR_MODE_TRIGGER 0x00000102U /*!< Acquisition with trigger */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup DTS_SensorResolution DTS sensor resolution
|
|
* @{
|
|
*/
|
|
#define DTS_SENSOR_RESOLUTION_12BITS 0x00000001U /*!< Sensor resolution of 12 bits */
|
|
#define DTS_SENSOR_RESOLUTION_10BITS 0x00000021U /*!< Sensor resolution of 10 bits */
|
|
#define DTS_SENSOR_RESOLUTION_8BITS 0x00000041U /*!< Sensor resolution of 8 bits */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup DTS_SensorTrigger DTS sensor trigger
|
|
* @{
|
|
*/
|
|
#define DTS_SENSOR_TRIGGER_LPTIM4_OUT 0x00010000U /*!< LPTIM4 output signal */
|
|
#define DTS_SENSOR_TRIGGER_LPTIM2_CH1 0x00020000U /*!< LPTIM2 channel 1 signal */
|
|
#define DTS_SENSOR_TRIGGER_LPTIM3_CH1 0x00030000U /*!< LPTIM3 channel 1 signal */
|
|
#define DTS_SENSOR_TRIGGER_EXTI13 0x00040000U /*!< EXTI13 signal */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Exported macros ---------------------------------------------------------------------------------------------------*/
|
|
|
|
/** @defgroup DTS_Exported_Macros DTS Exported Macros
|
|
* @{
|
|
*/
|
|
#if (USE_HAL_DTS_REGISTER_CALLBACKS == 1)
|
|
#define __HAL_DTS_RESET_HANDLE_STATE(__HANDLE__) do{ \
|
|
(__HANDLE__)->State = HAL_DTS_STATE_RESET; \
|
|
(__HANDLE__)->MspInitCallback = NULL; \
|
|
(__HANDLE__)->MspDeInitCallback = NULL; \
|
|
} while(0)
|
|
#else /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
#define __HAL_DTS_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DTS_STATE_RESET)
|
|
#endif /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
|
|
#define IS_DTS_SENSOR_MODE(PARAM) (((PARAM) == DTS_SENSOR_MODE_DISABLE) || \
|
|
((PARAM) == DTS_SENSOR_MODE_SINGLE) || \
|
|
((PARAM) == DTS_SENSOR_MODE_CONTINUOUS) || \
|
|
((PARAM) == DTS_SENSOR_MODE_TRIGGER))
|
|
|
|
#define IS_DTS_SENSOR_RESOLUTION(PARAM) (((PARAM) == DTS_SENSOR_RESOLUTION_12BITS) || \
|
|
((PARAM) == DTS_SENSOR_RESOLUTION_10BITS) || \
|
|
((PARAM) == DTS_SENSOR_RESOLUTION_8BITS))
|
|
|
|
#define IS_DTS_SENSOR_TRIGGER(PARAM) (((PARAM) == DTS_SENSOR_TRIGGER_LPTIM4_OUT) || \
|
|
((PARAM) == DTS_SENSOR_TRIGGER_LPTIM2_CH1) || \
|
|
((PARAM) == DTS_SENSOR_TRIGGER_LPTIM3_CH1) || \
|
|
((PARAM) == DTS_SENSOR_TRIGGER_EXTI13))
|
|
|
|
#define IS_DTS_ALARM_PARAM(PARAM) ((-40.0f <= (PARAM)) && ((PARAM) <= 125.0f))
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Exported functions ------------------------------------------------------------------------------------------------*/
|
|
|
|
/** @addtogroup DTS_Exported_Functions
|
|
* @{
|
|
*/
|
|
|
|
/* Initialization and de-initialization functions */
|
|
/** @addtogroup DTS_Exported_Functions_Group1
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_DTS_Init(DTS_HandleTypeDef *hdts);
|
|
HAL_StatusTypeDef HAL_DTS_DeInit(DTS_HandleTypeDef *hdts);
|
|
void HAL_DTS_MspInit(DTS_HandleTypeDef *hdts);
|
|
void HAL_DTS_MspDeInit(DTS_HandleTypeDef *hdts);
|
|
#if (USE_HAL_DTS_REGISTER_CALLBACKS == 1)
|
|
HAL_StatusTypeDef HAL_DTS_RegisterCallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_CallbackIDTypeDef CallbackID,
|
|
pDTS_CallbackTypeDef pCallback);
|
|
HAL_StatusTypeDef HAL_DTS_UnRegisterCallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_CallbackIDTypeDef CallbackID);
|
|
HAL_StatusTypeDef HAL_DTS_RegisterSensorCallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_SensorCallbackIDTypeDef CallbackID,
|
|
pDTS_SensorCallbackTypeDef pCallback);
|
|
HAL_StatusTypeDef HAL_DTS_UnRegisterSensorCallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_SensorCallbackIDTypeDef CallbackID);
|
|
#endif /* USE_HAL_DTS_REGISTER_CALLBACKS */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Temperature measurement functions */
|
|
/** @addtogroup DTS_Exported_Functions_Group2
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_DTS_ConfigSensor(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor,
|
|
DTS_SensorConfigTypeDef *pSensorParams);
|
|
HAL_StatusTypeDef HAL_DTS_Start(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
HAL_StatusTypeDef HAL_DTS_PollForTemperature(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor,
|
|
uint32_t Timeout);
|
|
HAL_StatusTypeDef HAL_DTS_GetTemperature(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor,
|
|
float_t *pTemperature);
|
|
HAL_StatusTypeDef HAL_DTS_Stop(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
HAL_StatusTypeDef HAL_DTS_Start_IT(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
HAL_StatusTypeDef HAL_DTS_Stop_IT(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
void HAL_DTS_TemperatureCallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
HAL_StatusTypeDef HAL_DTS_GetExtremeTemperatures(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor,
|
|
float_t *pMin,
|
|
float_t *pMax);
|
|
HAL_StatusTypeDef HAL_DTS_ConfigSampleCounter(DTS_HandleTypeDef *hdts,
|
|
FunctionalState Enable,
|
|
FunctionalState Clear,
|
|
FunctionalState Hold);
|
|
HAL_StatusTypeDef HAL_DTS_GetSampleCounterValue(DTS_HandleTypeDef *hdts,
|
|
uint32_t *pNumber);
|
|
HAL_StatusTypeDef HAL_DTS_ConfigSampleDiscard(DTS_HandleTypeDef *hdts,
|
|
FunctionalState Status);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Alarms functions */
|
|
/** @addtogroup DTS_Exported_Functions_Group3
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_DTS_ConfigAlarmA(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor,
|
|
const DTS_AlarmConfigTypeDef *pAlarmParams);
|
|
HAL_StatusTypeDef HAL_DTS_ConfigAlarmB(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor,
|
|
const DTS_AlarmConfigTypeDef *pAlarmParams);
|
|
void HAL_DTS_AlarmACallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
void HAL_DTS_AlarmBCallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Generic functions */
|
|
/** @addtogroup DTS_Exported_Functions_Group4
|
|
* @{
|
|
*/
|
|
void HAL_DTS_IRQHandler(DTS_HandleTypeDef *hdts);
|
|
void HAL_DTS_ErrorCallback(DTS_HandleTypeDef *hdts,
|
|
HAL_DTS_Sensor Sensor);
|
|
HAL_DTS_StateTypeDef HAL_DTS_GetState(const DTS_HandleTypeDef *hdts);
|
|
uint32_t HAL_DTS_GetError(const DTS_HandleTypeDef *hdts);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* STM32N6xx_HAL_DTS_H */
|