SPKT

Dependents:   WAV

Committer:
phungductung
Date:
Tue Jun 04 21:51:46 2019 +0000
Revision:
0:e87aa4c49e95
libray

Who changed what in which revision?

UserRevisionLine numberNew contents of line
phungductung 0:e87aa4c49e95 1 /**
phungductung 0:e87aa4c49e95 2 ******************************************************************************
phungductung 0:e87aa4c49e95 3 * @file stm32f7xx.h
phungductung 0:e87aa4c49e95 4 * @author MCD Application Team
phungductung 0:e87aa4c49e95 5 * @version V1.0.2
phungductung 0:e87aa4c49e95 6 * @date 21-September-2015
phungductung 0:e87aa4c49e95 7 * @brief CMSIS STM32F7xx Device Peripheral Access Layer Header File.
phungductung 0:e87aa4c49e95 8 *
phungductung 0:e87aa4c49e95 9 * The file is the unique include file that the application programmer
phungductung 0:e87aa4c49e95 10 * is using in the C source code, usually in main.c. This file contains:
phungductung 0:e87aa4c49e95 11 * - Configuration section that allows to select:
phungductung 0:e87aa4c49e95 12 * - The STM32F7xx device used in the target application
phungductung 0:e87aa4c49e95 13 * - To use or not the peripheral’s drivers in application code(i.e.
phungductung 0:e87aa4c49e95 14 * code will be based on direct access to peripheral’s registers
phungductung 0:e87aa4c49e95 15 * rather than drivers API), this option is controlled by
phungductung 0:e87aa4c49e95 16 * "#define USE_HAL_DRIVER"
phungductung 0:e87aa4c49e95 17 *
phungductung 0:e87aa4c49e95 18 ******************************************************************************
phungductung 0:e87aa4c49e95 19 * @attention
phungductung 0:e87aa4c49e95 20 *
phungductung 0:e87aa4c49e95 21 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
phungductung 0:e87aa4c49e95 22 *
phungductung 0:e87aa4c49e95 23 * Redistribution and use in source and binary forms, with or without modification,
phungductung 0:e87aa4c49e95 24 * are permitted provided that the following conditions are met:
phungductung 0:e87aa4c49e95 25 * 1. Redistributions of source code must retain the above copyright notice,
phungductung 0:e87aa4c49e95 26 * this list of conditions and the following disclaimer.
phungductung 0:e87aa4c49e95 27 * 2. Redistributions in binary form must reproduce the above copyright notice,
phungductung 0:e87aa4c49e95 28 * this list of conditions and the following disclaimer in the documentation
phungductung 0:e87aa4c49e95 29 * and/or other materials provided with the distribution.
phungductung 0:e87aa4c49e95 30 * 3. Neither the name of STMicroelectronics nor the names of its contributors
phungductung 0:e87aa4c49e95 31 * may be used to endorse or promote products derived from this software
phungductung 0:e87aa4c49e95 32 * without specific prior written permission.
phungductung 0:e87aa4c49e95 33 *
phungductung 0:e87aa4c49e95 34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
phungductung 0:e87aa4c49e95 35 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
phungductung 0:e87aa4c49e95 36 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
phungductung 0:e87aa4c49e95 37 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
phungductung 0:e87aa4c49e95 38 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
phungductung 0:e87aa4c49e95 39 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
phungductung 0:e87aa4c49e95 40 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
phungductung 0:e87aa4c49e95 41 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
phungductung 0:e87aa4c49e95 42 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
phungductung 0:e87aa4c49e95 43 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
phungductung 0:e87aa4c49e95 44 *
phungductung 0:e87aa4c49e95 45 ******************************************************************************
phungductung 0:e87aa4c49e95 46 */
phungductung 0:e87aa4c49e95 47
phungductung 0:e87aa4c49e95 48 /** @addtogroup CMSIS
phungductung 0:e87aa4c49e95 49 * @{
phungductung 0:e87aa4c49e95 50 */
phungductung 0:e87aa4c49e95 51
phungductung 0:e87aa4c49e95 52 /** @addtogroup stm32f7xx
phungductung 0:e87aa4c49e95 53 * @{
phungductung 0:e87aa4c49e95 54 */
phungductung 0:e87aa4c49e95 55
phungductung 0:e87aa4c49e95 56 #ifndef __STM32F7xx_H
phungductung 0:e87aa4c49e95 57 #define __STM32F7xx_H
phungductung 0:e87aa4c49e95 58
phungductung 0:e87aa4c49e95 59 #ifdef __cplusplus
phungductung 0:e87aa4c49e95 60 extern "C" {
phungductung 0:e87aa4c49e95 61 #endif /* __cplusplus */
phungductung 0:e87aa4c49e95 62
phungductung 0:e87aa4c49e95 63 /** @addtogroup Library_configuration_section
phungductung 0:e87aa4c49e95 64 * @{
phungductung 0:e87aa4c49e95 65 */
phungductung 0:e87aa4c49e95 66
phungductung 0:e87aa4c49e95 67 /**
phungductung 0:e87aa4c49e95 68 * @brief STM32 Family
phungductung 0:e87aa4c49e95 69 */
phungductung 0:e87aa4c49e95 70 #if !defined (STM32F7)
phungductung 0:e87aa4c49e95 71 #define STM32F7
phungductung 0:e87aa4c49e95 72 #endif /* STM32F7 */
phungductung 0:e87aa4c49e95 73
phungductung 0:e87aa4c49e95 74 /* Uncomment the line below according to the target STM32 device used in your
phungductung 0:e87aa4c49e95 75 application
phungductung 0:e87aa4c49e95 76 */
phungductung 0:e87aa4c49e95 77 #if !defined (STM32F756xx) && !defined (STM32F746xx) && !defined (STM32F745xx)
phungductung 0:e87aa4c49e95 78 /* #define STM32F756xx */ /*!< STM32F756VG, STM32F756ZG, STM32F756ZG, STM32F756IG, STM32F756BG,
phungductung 0:e87aa4c49e95 79 STM32F756NG Devices */
phungductung 0:e87aa4c49e95 80 #define STM32F746xx /*!< STM32F746VE, STM32F746VG, STM32F746ZE, STM32F746ZG, STM32F746IE, STM32F746IG,
phungductung 0:e87aa4c49e95 81 STM32F746BE, STM32F746BG, STM32F746NE, STM32F746NG Devices */
phungductung 0:e87aa4c49e95 82 /* #define STM32F745xx */ /*!< STM32F745VE, STM32F745VG, STM32F745ZG, STM32F745ZE, STM32F745IE, STM32F745IG Devices */
phungductung 0:e87aa4c49e95 83 #endif
phungductung 0:e87aa4c49e95 84
phungductung 0:e87aa4c49e95 85 /* Tip: To avoid modifying this file each time you need to switch between these
phungductung 0:e87aa4c49e95 86 devices, you can define the device in your toolchain compiler preprocessor.
phungductung 0:e87aa4c49e95 87 */
phungductung 0:e87aa4c49e95 88
phungductung 0:e87aa4c49e95 89 #if !defined (USE_HAL_DRIVER)
phungductung 0:e87aa4c49e95 90 /**
phungductung 0:e87aa4c49e95 91 * @brief Comment the line below if you will not use the peripherals drivers.
phungductung 0:e87aa4c49e95 92 In this case, these drivers will not be included and the application code will
phungductung 0:e87aa4c49e95 93 be based on direct access to peripherals registers
phungductung 0:e87aa4c49e95 94 */
phungductung 0:e87aa4c49e95 95 #define USE_HAL_DRIVER
phungductung 0:e87aa4c49e95 96 #endif /* USE_HAL_DRIVER */
phungductung 0:e87aa4c49e95 97
phungductung 0:e87aa4c49e95 98 /**
phungductung 0:e87aa4c49e95 99 * @brief CMSIS Device version number V1.0.1
phungductung 0:e87aa4c49e95 100 */
phungductung 0:e87aa4c49e95 101 #define __STM32F7xx_CMSIS_DEVICE_VERSION_MAIN (0x01) /*!< [31:24] main version */
phungductung 0:e87aa4c49e95 102 #define __STM32F7xx_CMSIS_DEVICE_VERSION_SUB1 (0x00) /*!< [23:16] sub1 version */
phungductung 0:e87aa4c49e95 103 #define __STM32F7xx_CMSIS_DEVICE_VERSION_SUB2 (0x01) /*!< [15:8] sub2 version */
phungductung 0:e87aa4c49e95 104 #define __STM32F7xx_CMSIS_DEVICE_VERSION_RC (0x00) /*!< [7:0] release candidate */
phungductung 0:e87aa4c49e95 105 #define __STM32F7xx_CMSIS_DEVICE_VERSION ((__STM32F7xx_CMSIS_DEVICE_VERSION_MAIN << 24)\
phungductung 0:e87aa4c49e95 106 |(__STM32F7xx_CMSIS_DEVICE_VERSION_SUB1 << 16)\
phungductung 0:e87aa4c49e95 107 |(__STM32F7xx_CMSIS_DEVICE_VERSION_SUB2 << 8 )\
phungductung 0:e87aa4c49e95 108 |(__STM32F7xx_CMSIS_DEVICE_VERSION))
phungductung 0:e87aa4c49e95 109 /**
phungductung 0:e87aa4c49e95 110 * @}
phungductung 0:e87aa4c49e95 111 */
phungductung 0:e87aa4c49e95 112
phungductung 0:e87aa4c49e95 113 /** @addtogroup Device_Included
phungductung 0:e87aa4c49e95 114 * @{
phungductung 0:e87aa4c49e95 115 */
phungductung 0:e87aa4c49e95 116 #if defined(STM32F756xx)
phungductung 0:e87aa4c49e95 117 #include "stm32f756xx.h"
phungductung 0:e87aa4c49e95 118 #elif defined(STM32F746xx)
phungductung 0:e87aa4c49e95 119 #include "stm32f746xx.h"
phungductung 0:e87aa4c49e95 120 #elif defined(STM32F745xx)
phungductung 0:e87aa4c49e95 121 #include "stm32f745xx.h"
phungductung 0:e87aa4c49e95 122 #else
phungductung 0:e87aa4c49e95 123 #error "Please select first the target STM32F7xx device used in your application (in stm32f7xx.h file)"
phungductung 0:e87aa4c49e95 124 #endif
phungductung 0:e87aa4c49e95 125
phungductung 0:e87aa4c49e95 126 /**
phungductung 0:e87aa4c49e95 127 * @}
phungductung 0:e87aa4c49e95 128 */
phungductung 0:e87aa4c49e95 129
phungductung 0:e87aa4c49e95 130 /** @addtogroup Exported_types
phungductung 0:e87aa4c49e95 131 * @{
phungductung 0:e87aa4c49e95 132 */
phungductung 0:e87aa4c49e95 133 typedef enum
phungductung 0:e87aa4c49e95 134 {
phungductung 0:e87aa4c49e95 135 RESET = 0,
phungductung 0:e87aa4c49e95 136 SET = !RESET
phungductung 0:e87aa4c49e95 137 } FlagStatus, ITStatus;
phungductung 0:e87aa4c49e95 138
phungductung 0:e87aa4c49e95 139 typedef enum
phungductung 0:e87aa4c49e95 140 {
phungductung 0:e87aa4c49e95 141 DISABLE = 0,
phungductung 0:e87aa4c49e95 142 ENABLE = !DISABLE
phungductung 0:e87aa4c49e95 143 } FunctionalState;
phungductung 0:e87aa4c49e95 144 #define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
phungductung 0:e87aa4c49e95 145
phungductung 0:e87aa4c49e95 146 typedef enum
phungductung 0:e87aa4c49e95 147 {
phungductung 0:e87aa4c49e95 148 ERROR = 0,
phungductung 0:e87aa4c49e95 149 SUCCESS = !ERROR
phungductung 0:e87aa4c49e95 150 } ErrorStatus;
phungductung 0:e87aa4c49e95 151
phungductung 0:e87aa4c49e95 152 /**
phungductung 0:e87aa4c49e95 153 * @}
phungductung 0:e87aa4c49e95 154 */
phungductung 0:e87aa4c49e95 155
phungductung 0:e87aa4c49e95 156 /** @addtogroup Exported_macro
phungductung 0:e87aa4c49e95 157 * @{
phungductung 0:e87aa4c49e95 158 */
phungductung 0:e87aa4c49e95 159 #define SET_BIT(REG, BIT) ((REG) |= (BIT))
phungductung 0:e87aa4c49e95 160
phungductung 0:e87aa4c49e95 161 #define CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))
phungductung 0:e87aa4c49e95 162
phungductung 0:e87aa4c49e95 163 #define READ_BIT(REG, BIT) ((REG) & (BIT))
phungductung 0:e87aa4c49e95 164
phungductung 0:e87aa4c49e95 165 #define CLEAR_REG(REG) ((REG) = (0x0))
phungductung 0:e87aa4c49e95 166
phungductung 0:e87aa4c49e95 167 #define WRITE_REG(REG, VAL) ((REG) = (VAL))
phungductung 0:e87aa4c49e95 168
phungductung 0:e87aa4c49e95 169 #define READ_REG(REG) ((REG))
phungductung 0:e87aa4c49e95 170
phungductung 0:e87aa4c49e95 171 #define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK)))
phungductung 0:e87aa4c49e95 172
phungductung 0:e87aa4c49e95 173 #define POSITION_VAL(VAL) (__CLZ(__RBIT(VAL)))
phungductung 0:e87aa4c49e95 174
phungductung 0:e87aa4c49e95 175 /**
phungductung 0:e87aa4c49e95 176 * @}
phungductung 0:e87aa4c49e95 177 */
phungductung 0:e87aa4c49e95 178
phungductung 0:e87aa4c49e95 179 #ifdef USE_HAL_DRIVER
phungductung 0:e87aa4c49e95 180 #include "stm32f7xx_hal_conf.h"
phungductung 0:e87aa4c49e95 181 #endif /* USE_HAL_DRIVER */
phungductung 0:e87aa4c49e95 182
phungductung 0:e87aa4c49e95 183 #ifdef __cplusplus
phungductung 0:e87aa4c49e95 184 }
phungductung 0:e87aa4c49e95 185 #endif /* __cplusplus */
phungductung 0:e87aa4c49e95 186
phungductung 0:e87aa4c49e95 187 #endif /* __STM32F7xx_H */
phungductung 0:e87aa4c49e95 188
phungductung 0:e87aa4c49e95 189 /**
phungductung 0:e87aa4c49e95 190 * @}
phungductung 0:e87aa4c49e95 191 */
phungductung 0:e87aa4c49e95 192
phungductung 0:e87aa4c49e95 193 /**
phungductung 0:e87aa4c49e95 194 * @}
phungductung 0:e87aa4c49e95 195 */
phungductung 0:e87aa4c49e95 196
phungductung 0:e87aa4c49e95 197 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/