/**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* @ file stm32f2xx_hal_def . h
* @ author MCD Application Team
* @ version V1 .1 .3
* @ date 29 - June - 2016
* @ brief This file contains HAL common defines , enumeration , macros and
* structures definitions .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* @ attention
*
* < h2 > < center > & copy ; COPYRIGHT ( c ) 2016 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 __STM32F2xx_HAL_DEF
# define __STM32F2xx_HAL_DEF
# ifdef __cplusplus
extern " C " {
# endif
/* Includes ------------------------------------------------------------------*/
# include "stm32f2xx.h"
//#include "Legacy/stm32_hal_legacy.h"
//#include <stdio.h>
/* Exported types ------------------------------------------------------------*/
/**
* @ brief HAL Status structures definition
*/
typedef enum
{
HAL_OK = 0x00U ,
HAL_ERROR = 0x01U ,
HAL_BUSY = 0x02U ,
HAL_TIMEOUT = 0x03U
} HAL_StatusTypeDef ;
/**
* @ brief HAL Lock structures definition
*/
typedef enum
{
HAL_UNLOCKED = 0x00U ,
HAL_LOCKED = 0x01U
} HAL_LockTypeDef ;
/* Exported macro ------------------------------------------------------------*/
# define HAL_MAX_DELAY 0xFFFFFFFFU
# define HAL_IS_BIT_SET(REG, BIT) (((REG) & (BIT)) != RESET)
# define HAL_IS_BIT_CLR(REG, BIT) (((REG) & (BIT)) == RESET)
# define __HAL_LINKDMA(__HANDLE__, __PPP_DMA_FIELD_, __DMA_HANDLE_) \
do { \
( __HANDLE__ ) - > __PPP_DMA_FIELD_ = & ( __DMA_HANDLE_ ) ; \
( __DMA_HANDLE_ ) . Parent = ( __HANDLE__ ) ; \
} while ( 0 )
# define UNUSED(x) ((void)(x))
/** @brief Reset the Handle's State field.
* @ param __HANDLE__ : specifies the Peripheral Handle .
* @ note This macro can be used for the following purpose :
* - When the Handle is declared as local variable ; before passing it as parameter
* to HAL_PPP_Init ( ) for the first time , it is mandatory to use this macro
* to set to 0 the Handle ' s " State " field .
* Otherwise , " State " field may have any random value and the first time the function
* HAL_PPP_Init ( ) is called , the low level hardware initialization will be missed
* ( i . e . HAL_PPP_MspInit ( ) will not be executed ) .
* - When there is a need to reconfigure the low level hardware : instead of calling
* HAL_PPP_DeInit ( ) then HAL_PPP_Init ( ) , user can make a call to this macro then HAL_PPP_Init ( ) .
* In this later function , when the Handle ' s " State " field is set to 0 , it will execute the function
* HAL_PPP_MspInit ( ) which will reconfigure the low level hardware .
* @ retval None
*/
# define __HAL_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = 0U)
# if (USE_RTOS == 1)
/* Reserved for future use */
# error " USE_RTOS should be 0 in the current HAL release "
# else
# define __HAL_LOCK(__HANDLE__) \
do { \
if ( ( __HANDLE__ ) - > Lock = = HAL_LOCKED ) \
{ \
return HAL_BUSY ; \
} \
else \
{ \
( __HANDLE__ ) - > Lock = HAL_LOCKED ; \
} \
} while ( 0 )
# define __HAL_UNLOCK(__HANDLE__) \
do { \
( __HANDLE__ ) - > Lock = HAL_UNLOCKED ; \
} while ( 0 )
# endif /* USE_RTOS */
# if defined ( __GNUC__ )
# ifndef __weak
# define __weak __attribute__((weak))
# endif /* __weak */
# ifndef __packed
# define __packed __attribute__((__packed__))
# endif /* __packed */
# endif /* __GNUC__ */
/* Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead */
# if defined (__GNUC__) /* GNU Compiler */
# ifndef __ALIGN_END
# define __ALIGN_END __attribute__ ((aligned (4)))
# endif /* __ALIGN_END */
# ifndef __ALIGN_BEGIN
# define __ALIGN_BEGIN
# endif /* __ALIGN_BEGIN */
# else
# ifndef __ALIGN_END
# define __ALIGN_END
# endif /* __ALIGN_END */
# ifndef __ALIGN_BEGIN
# if defined (__CC_ARM) /* ARM Compiler */
# define __ALIGN_BEGIN __align(4)
# elif defined (__ICCARM__) /* IAR Compiler */
# define __ALIGN_BEGIN
# endif /* __CC_ARM */
# endif /* __ALIGN_BEGIN */
# endif /* __GNUC__ */
/**
* @ brief __NOINLINE definition
*/
# if defined ( __CC_ARM ) || defined ( __GNUC__ )
/* ARM & GNUCompiler
- - - - - - - - - - - - - - - -
*/
# define __NOINLINE __attribute__ ( (noinline) )
# elif defined ( __ICCARM__ )
/* ICCARM Compiler
- - - - - - - - - - - - - - -
*/
# define __NOINLINE _Pragma("optimize = no_inline")
# endif
# ifdef __cplusplus
}
# endif
# endif /* ___STM32F2xx_HAL_DEF */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/