Files @ c1b2840961f0
Branch filter:

Location: therm-ng/drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_adc.h - annotation

Ethan Zonca <ethanzonca>
Hacking thermostatic mode into operation. This code needs some love.
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
f94ab6abb81d
/**
  ******************************************************************************
  * @file    stm32f3xx_hal_adc.h
  * @author  MCD Application Team
  * @version V1.2.0
  * @date    13-November-2015
  * @brief   Header file containing functions prototypes of ADC HAL library.
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
  *
  * Redistribution and use in source and binary forms, with or without modification,
  * are permitted provided that the following conditions are met:
  *   1. Redistributions of source code must retain the above copyright notice,
  *      this list of conditions and the following disclaimer.
  *   2. Redistributions in binary form must reproduce the above copyright notice,
  *      this list of conditions and the following disclaimer in the documentation
  *      and/or other materials provided with the distribution.
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
  *      may be used to endorse or promote products derived from this software
  *      without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F3xx_ADC_H
#define __STM32F3xx_ADC_H

#ifdef __cplusplus
 extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "stm32f3xx_hal_def.h"
   
/* Include ADC HAL Extended module */
/* (include on top of file since ADC structures are defined in extended file) */
#include "stm32f3xx_hal_adc_ex.h"
   
/** @addtogroup STM32F3xx_HAL_Driver
  * @{
  */

/** @addtogroup ADC
  * @{
  */ 

/* Exported types ------------------------------------------------------------*/
/** @defgroup ADC_Exported_Types ADC Exported Types
  * @{
  */
/** 
  * @brief  HAL ADC state machine: ADC states definition (bitfields)
  * @note   ADC state machine is managed by bitfields, state must be compared
  *         with bit by bit.
  *         For example:                                                         
  *           " if (HAL_IS_BIT_SET(HAL_ADC_GetState(hadc1), HAL_ADC_STATE_REG_BUSY)) "
  *           " if (HAL_IS_BIT_SET(HAL_ADC_GetState(hadc1), HAL_ADC_STATE_AWD1)    ) "
  */
/* States of ADC global scope */
#define HAL_ADC_STATE_RESET             ((uint32_t)0x00000000)    /*!< ADC not yet initialized or disabled */
#define HAL_ADC_STATE_READY             ((uint32_t)0x00000001)    /*!< ADC peripheral ready for use */
#define HAL_ADC_STATE_BUSY_INTERNAL     ((uint32_t)0x00000002)    /*!< ADC is busy to internal process (initialization, calibration) */
#define HAL_ADC_STATE_TIMEOUT           ((uint32_t)0x00000004)    /*!< TimeOut occurrence */

/* States of ADC errors */
#define HAL_ADC_STATE_ERROR_INTERNAL    ((uint32_t)0x00000010)    /*!< Internal error occurrence */
#define HAL_ADC_STATE_ERROR_CONFIG      ((uint32_t)0x00000020)    /*!< Configuration error occurrence */
#define HAL_ADC_STATE_ERROR_DMA         ((uint32_t)0x00000040)    /*!< DMA error occurrence */

/* States of ADC group regular */
#define HAL_ADC_STATE_REG_BUSY          ((uint32_t)0x00000100)    /*!< A conversion on group regular is ongoing or can occur (either by continuous mode,
                                                                       external trigger, low power auto power-on, multimode ADC master control) */
#define HAL_ADC_STATE_REG_EOC           ((uint32_t)0x00000200)    /*!< Conversion data available on group regular */
#define HAL_ADC_STATE_REG_OVR           ((uint32_t)0x00000400)    /*!< Not available on STM32F1 device: Overrun occurrence */
#define HAL_ADC_STATE_REG_EOSMP         ((uint32_t)0x00000800)    /*!< Not available on STM32F1 device: End Of Sampling flag raised  */

/* States of ADC group injected */
#define HAL_ADC_STATE_INJ_BUSY          ((uint32_t)0x00001000)    /*!< A conversion on group injected is ongoing or can occur (either by auto-injection mode,
                                                                       external trigger, low power auto power-on, multimode ADC master control) */
#define HAL_ADC_STATE_INJ_EOC           ((uint32_t)0x00002000)    /*!< Conversion data available on group injected */
#define HAL_ADC_STATE_INJ_JQOVF         ((uint32_t)0x00004000)    /*!< Not available on STM32F1 device: Injected queue overflow occurrence */

/* States of ADC analog watchdogs */
#define HAL_ADC_STATE_AWD1              ((uint32_t)0x00010000)    /*!< Out-of-window occurrence of analog watchdog 1 */
#define HAL_ADC_STATE_AWD2              ((uint32_t)0x00020000)    /*!< Not available on STM32F1 device: Out-of-window occurrence of analog watchdog 2 */
#define HAL_ADC_STATE_AWD3              ((uint32_t)0x00040000)    /*!< Not available on STM32F1 device: Out-of-window occurrence of analog watchdog 3 */

/* States of ADC multi-mode */
#define HAL_ADC_STATE_MULTIMODE_SLAVE   ((uint32_t)0x00100000)    /*!< ADC in multimode slave state, controlled by another ADC master ( */


/** 
  * @brief  ADC handle Structure definition  
  */
typedef struct __ADC_HandleTypeDef
{
  ADC_TypeDef                   *Instance;              /*!< Register base address */

  ADC_InitTypeDef               Init;                   /*!< ADC required parameters */

  DMA_HandleTypeDef             *DMA_Handle;            /*!< Pointer DMA Handler */

  HAL_LockTypeDef               Lock;                   /*!< ADC locking object */

  __IO uint32_t                 State;                  /*!< ADC communication state (bitmap of ADC states) */

  __IO uint32_t                 ErrorCode;              /*!< ADC Error code */
  
#if defined(STM32F302xE) || defined(STM32F303xE) || defined(STM32F398xx) || \
    defined(STM32F302xC) || defined(STM32F303xC) || defined(STM32F358xx) || \
    defined(STM32F303x8) || defined(STM32F334x8) || defined(STM32F328xx) || \
    defined(STM32F301x8) || defined(STM32F302x8) || defined(STM32F318xx)
  ADC_InjectionConfigTypeDef    InjectionConfig ;       /*!< ADC injected channel configuration build-up structure */  
#endif /* STM32F302xE || STM32F303xE || STM32F398xx || */
       /* STM32F302xC || STM32F303xC || STM32F358xx || */
       /* STM32F303x8 || STM32F334x8 || STM32F328xx || */
       /* STM32F301x8 || STM32F302x8 || STM32F318xx    */
  
}ADC_HandleTypeDef;
/**
  * @}
  */

/* Exported constants --------------------------------------------------------*/
/* Exported macros -----------------------------------------------------------*/
     
/** @defgroup ADC_Exported_Macro ADC Exported Macros
  * @{
  */
/** @brief  Reset ADC handle state
  * @param  __HANDLE__: ADC handle
  * @retval None
  */
#define __HAL_ADC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_ADC_STATE_RESET)

/**
  * @}
  */ 



/* Exported functions --------------------------------------------------------*/
/** @addtogroup ADC_Exported_Functions ADC Exported Functions
  * @{
  */ 

/** @addtogroup ADC_Exported_Functions_Group1 Initialization and de-initialization functions 
 * @{
 */ 
/* Initialization and de-initialization functions  **********************************/
HAL_StatusTypeDef       HAL_ADC_Init(ADC_HandleTypeDef* hadc);
HAL_StatusTypeDef       HAL_ADC_DeInit(ADC_HandleTypeDef *hadc);
void                    HAL_ADC_MspInit(ADC_HandleTypeDef* hadc);
void                    HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc);
/**
  * @}
  */

/** @addtogroup ADC_Exported_Functions_Group2 Input and Output operation functions
 * @{
 */ 
/* Blocking mode: Polling */
HAL_StatusTypeDef       HAL_ADC_Start(ADC_HandleTypeDef* hadc);
HAL_StatusTypeDef       HAL_ADC_Stop(ADC_HandleTypeDef* hadc);
HAL_StatusTypeDef       HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
HAL_StatusTypeDef       HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout);

/* Non-blocking mode: Interruption */
HAL_StatusTypeDef       HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);
HAL_StatusTypeDef       HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);

/* Non-blocking mode: DMA */
HAL_StatusTypeDef       HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);
HAL_StatusTypeDef       HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc);

/* ADC retrieve conversion value intended to be used with polling or interruption */
uint32_t                HAL_ADC_GetValue(ADC_HandleTypeDef* hadc);

/* ADC IRQHandler and Callbacks used in non-blocking modes (Interruption and DMA) */
void                    HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc);
void                    HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);
void                    HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc);
void                    HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc);
void                    HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc);
/**
  * @}
  */

/** @addtogroup ADC_Exported_Functions_Group3 Peripheral Control functions
 * @{
 */ 
/* Peripheral Control functions ***********************************************/
HAL_StatusTypeDef       HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig);
HAL_StatusTypeDef       HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef* hadc, ADC_AnalogWDGConfTypeDef* AnalogWDGConfig);
/**
  * @}
  */

/** @defgroup ADC_Exported_Functions_Group4 Peripheral State functions
 *  @brief   ADC Peripheral State functions 
 * @{
 */ 
/* Peripheral State functions *************************************************/
uint32_t                HAL_ADC_GetState(ADC_HandleTypeDef* hadc);
uint32_t                HAL_ADC_GetError(ADC_HandleTypeDef *hadc);
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */ 

/**
  * @}
  */

#ifdef __cplusplus
}
#endif

#endif /*__STM32F3xx_ADC_H */


/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/