TUKS MCU Introductory course / TUKS-COURSE-TIMER
Committer:
elmot
Date:
Fri Feb 24 21:13:56 2017 +0000
Revision:
1:d0dfbce63a89
Ready-to-copy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
elmot 1:d0dfbce63a89 1 /**
elmot 1:d0dfbce63a89 2 ******************************************************************************
elmot 1:d0dfbce63a89 3 * @file stm32l476g_discovery.h
elmot 1:d0dfbce63a89 4 * @author MCD Application Team
elmot 1:d0dfbce63a89 5 * @version V1.0.0
elmot 1:d0dfbce63a89 6 * @date 26-June-2015
elmot 1:d0dfbce63a89 7 * @brief This file contains definitions for STM32L476G_DISCOVERY's LEDs,
elmot 1:d0dfbce63a89 8 * push-buttons hardware resources (MB1184).
elmot 1:d0dfbce63a89 9 ******************************************************************************
elmot 1:d0dfbce63a89 10 * @attention
elmot 1:d0dfbce63a89 11 *
elmot 1:d0dfbce63a89 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
elmot 1:d0dfbce63a89 13 *
elmot 1:d0dfbce63a89 14 * Redistribution and use in source and binary forms, with or without modification,
elmot 1:d0dfbce63a89 15 * are permitted provided that the following conditions are met:
elmot 1:d0dfbce63a89 16 * 1. Redistributions of source code must retain the above copyright notice,
elmot 1:d0dfbce63a89 17 * this list of conditions and the following disclaimer.
elmot 1:d0dfbce63a89 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
elmot 1:d0dfbce63a89 19 * this list of conditions and the following disclaimer in the documentation
elmot 1:d0dfbce63a89 20 * and/or other materials provided with the distribution.
elmot 1:d0dfbce63a89 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
elmot 1:d0dfbce63a89 22 * may be used to endorse or promote products derived from this software
elmot 1:d0dfbce63a89 23 * without specific prior written permission.
elmot 1:d0dfbce63a89 24 *
elmot 1:d0dfbce63a89 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
elmot 1:d0dfbce63a89 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
elmot 1:d0dfbce63a89 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
elmot 1:d0dfbce63a89 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
elmot 1:d0dfbce63a89 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
elmot 1:d0dfbce63a89 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
elmot 1:d0dfbce63a89 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
elmot 1:d0dfbce63a89 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
elmot 1:d0dfbce63a89 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
elmot 1:d0dfbce63a89 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
elmot 1:d0dfbce63a89 35 *
elmot 1:d0dfbce63a89 36 ******************************************************************************
elmot 1:d0dfbce63a89 37 */
elmot 1:d0dfbce63a89 38
elmot 1:d0dfbce63a89 39 /* Define to prevent recursive inclusion -------------------------------------*/
elmot 1:d0dfbce63a89 40 #ifndef __STM32L476G_DISCOVERY_H
elmot 1:d0dfbce63a89 41 #define __STM32L476G_DISCOVERY_H
elmot 1:d0dfbce63a89 42
elmot 1:d0dfbce63a89 43 #ifdef __cplusplus
elmot 1:d0dfbce63a89 44 extern "C" {
elmot 1:d0dfbce63a89 45 #endif
elmot 1:d0dfbce63a89 46
elmot 1:d0dfbce63a89 47 /**
elmot 1:d0dfbce63a89 48 * @brief Define for STM32L476G_DISCOVERY board
elmot 1:d0dfbce63a89 49 */
elmot 1:d0dfbce63a89 50 #if !defined (USE_STM32L476G_DISCO_REVC) && !defined (USE_STM32L476G_DISCO_REVB) && !defined (USE_STM32L476G_DISCO_REVA)
elmot 1:d0dfbce63a89 51 #define USE_STM32L476G_DISCO_REVC
elmot 1:d0dfbce63a89 52 #endif
elmot 1:d0dfbce63a89 53
elmot 1:d0dfbce63a89 54
elmot 1:d0dfbce63a89 55 /* Includes ------------------------------------------------------------------*/
elmot 1:d0dfbce63a89 56 #include "stm32l4xx_hal.h"
elmot 1:d0dfbce63a89 57
elmot 1:d0dfbce63a89 58 /** @addtogroup BSP
elmot 1:d0dfbce63a89 59 * @{
elmot 1:d0dfbce63a89 60 */
elmot 1:d0dfbce63a89 61
elmot 1:d0dfbce63a89 62 /** @addtogroup STM32L476G_DISCOVERY
elmot 1:d0dfbce63a89 63 * @{
elmot 1:d0dfbce63a89 64 */
elmot 1:d0dfbce63a89 65
elmot 1:d0dfbce63a89 66 /** @addtogroup STM32L476G_DISCOVERY_Common
elmot 1:d0dfbce63a89 67 * @{
elmot 1:d0dfbce63a89 68 */
elmot 1:d0dfbce63a89 69
elmot 1:d0dfbce63a89 70 /** @defgroup STM32L476G_DISCOVERY_Exported_Types Exported Types
elmot 1:d0dfbce63a89 71 * @{
elmot 1:d0dfbce63a89 72 */
elmot 1:d0dfbce63a89 73
elmot 1:d0dfbce63a89 74 /**
elmot 1:d0dfbce63a89 75 * @brief LED Types Definition
elmot 1:d0dfbce63a89 76 */
elmot 1:d0dfbce63a89 77 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
elmot 1:d0dfbce63a89 78 typedef enum
elmot 1:d0dfbce63a89 79 {
elmot 1:d0dfbce63a89 80 DISCO_LED4 = 0,
elmot 1:d0dfbce63a89 81 DISCO_LED5 = 1,
elmot 1:d0dfbce63a89 82 LED_RED = DISCO_LED4,
elmot 1:d0dfbce63a89 83 LED_GREEN = DISCO_LED5
elmot 1:d0dfbce63a89 84 }Led_TypeDef;
elmot 1:d0dfbce63a89 85 #elif defined (USE_STM32L476G_DISCO_REVA)
elmot 1:d0dfbce63a89 86 typedef enum
elmot 1:d0dfbce63a89 87 {
elmot 1:d0dfbce63a89 88 DISCO_LED3 = 0,
elmot 1:d0dfbce63a89 89 DISCO_LED4 = 1,
elmot 1:d0dfbce63a89 90 LED_RED = DISCO_LED3,
elmot 1:d0dfbce63a89 91 LED_GREEN = DISCO_LED4
elmot 1:d0dfbce63a89 92 }Led_TypeDef;
elmot 1:d0dfbce63a89 93 #endif
elmot 1:d0dfbce63a89 94
elmot 1:d0dfbce63a89 95 /**
elmot 1:d0dfbce63a89 96 * @brief JOYSTICK Types Definition
elmot 1:d0dfbce63a89 97 */
elmot 1:d0dfbce63a89 98 typedef enum
elmot 1:d0dfbce63a89 99 {
elmot 1:d0dfbce63a89 100 JOY_SEL = 0,
elmot 1:d0dfbce63a89 101 JOY_LEFT = 1,
elmot 1:d0dfbce63a89 102 JOY_RIGHT = 2,
elmot 1:d0dfbce63a89 103 JOY_DOWN = 3,
elmot 1:d0dfbce63a89 104 JOY_UP = 4,
elmot 1:d0dfbce63a89 105 JOY_NONE = 5
elmot 1:d0dfbce63a89 106 }JOYState_TypeDef;
elmot 1:d0dfbce63a89 107
elmot 1:d0dfbce63a89 108 typedef enum
elmot 1:d0dfbce63a89 109 {
elmot 1:d0dfbce63a89 110 JOY_MODE_GPIO = 0,
elmot 1:d0dfbce63a89 111 JOY_MODE_EXTI = 1
elmot 1:d0dfbce63a89 112 }JOYMode_TypeDef;
elmot 1:d0dfbce63a89 113
elmot 1:d0dfbce63a89 114 typedef enum
elmot 1:d0dfbce63a89 115 {
elmot 1:d0dfbce63a89 116 SUPPLY_MODE_ERROR = 0,
elmot 1:d0dfbce63a89 117 SUPPLY_MODE_EXTERNAL = 1,
elmot 1:d0dfbce63a89 118 SUPPLY_MODE_BATTERY = 2
elmot 1:d0dfbce63a89 119 }SupplyMode_TypeDef;
elmot 1:d0dfbce63a89 120
elmot 1:d0dfbce63a89 121 /**
elmot 1:d0dfbce63a89 122 * @}
elmot 1:d0dfbce63a89 123 */
elmot 1:d0dfbce63a89 124
elmot 1:d0dfbce63a89 125 /** @defgroup STM32L476G_DISCOVERY_Exported_Constants Exported Constants
elmot 1:d0dfbce63a89 126 * @{
elmot 1:d0dfbce63a89 127 */
elmot 1:d0dfbce63a89 128
elmot 1:d0dfbce63a89 129 /** @defgroup STM32L476G_DISCOVERY_BATTERY BATTERY Detection Constants
elmot 1:d0dfbce63a89 130 * @{
elmot 1:d0dfbce63a89 131 */
elmot 1:d0dfbce63a89 132 #define BATTERY_DETECTION_PIN GPIO_PIN_3
elmot 1:d0dfbce63a89 133 #define BATTERY_DETECTION_GPIO_PORT GPIOB
elmot 1:d0dfbce63a89 134 #define BATTERY_DETECTION_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 135 #define BATTERY_DETECTION_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 136 /**
elmot 1:d0dfbce63a89 137 * @}
elmot 1:d0dfbce63a89 138 */
elmot 1:d0dfbce63a89 139
elmot 1:d0dfbce63a89 140 /** @defgroup STM32L476G_DISCOVERY_LED LED Constants
elmot 1:d0dfbce63a89 141 * @{
elmot 1:d0dfbce63a89 142 */
elmot 1:d0dfbce63a89 143 #define LEDn 2
elmot 1:d0dfbce63a89 144
elmot 1:d0dfbce63a89 145 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
elmot 1:d0dfbce63a89 146 #define LED4_PIN GPIO_PIN_2
elmot 1:d0dfbce63a89 147 #define LED4_GPIO_PORT GPIOB
elmot 1:d0dfbce63a89 148 #define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 149 #define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 150
elmot 1:d0dfbce63a89 151 #define LED5_PIN GPIO_PIN_8
elmot 1:d0dfbce63a89 152 #define LED5_GPIO_PORT GPIOE
elmot 1:d0dfbce63a89 153 #define LED5_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE()
elmot 1:d0dfbce63a89 154 #define LED5_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE()
elmot 1:d0dfbce63a89 155
elmot 1:d0dfbce63a89 156 #define LEDx_GPIO_CLK_ENABLE(__LED__) do { if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_ENABLE(); } else \
elmot 1:d0dfbce63a89 157 if((__LED__) == DISCO_LED5) { LED5_GPIO_CLK_ENABLE(); } } while(0)
elmot 1:d0dfbce63a89 158
elmot 1:d0dfbce63a89 159 #define LEDx_GPIO_CLK_DISABLE(__LED__) do { if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_DISABLE(); } else \
elmot 1:d0dfbce63a89 160 if((__LED__) == DISCO_LED5) { LED5_GPIO_CLK_DISABLE(); } } while(0)
elmot 1:d0dfbce63a89 161
elmot 1:d0dfbce63a89 162 #elif defined (USE_STM32L476G_DISCO_REVA)
elmot 1:d0dfbce63a89 163 #define LED3_PIN GPIO_PIN_2
elmot 1:d0dfbce63a89 164 #define LED3_GPIO_PORT GPIOB
elmot 1:d0dfbce63a89 165 #define LED3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 166 #define LED3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 167
elmot 1:d0dfbce63a89 168 #define LED4_PIN GPIO_PIN_8
elmot 1:d0dfbce63a89 169 #define LED4_GPIO_PORT GPIOE
elmot 1:d0dfbce63a89 170 #define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE()
elmot 1:d0dfbce63a89 171 #define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE()
elmot 1:d0dfbce63a89 172
elmot 1:d0dfbce63a89 173 #define LEDx_GPIO_CLK_ENABLE(__LED__) do { if((__LED__) == DISCO_LED3) { LED3_GPIO_CLK_ENABLE(); } else \
elmot 1:d0dfbce63a89 174 if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_ENABLE(); } } while(0)
elmot 1:d0dfbce63a89 175
elmot 1:d0dfbce63a89 176 #define LEDx_GPIO_CLK_DISABLE(__LED__) do { if((__LED__) == DISCO_LED3) { LED3_GPIO_CLK_DISABLE(); } else \
elmot 1:d0dfbce63a89 177 if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_DISABLE(); } } while(0)
elmot 1:d0dfbce63a89 178
elmot 1:d0dfbce63a89 179 #endif
elmot 1:d0dfbce63a89 180 /**
elmot 1:d0dfbce63a89 181 * @}
elmot 1:d0dfbce63a89 182 */
elmot 1:d0dfbce63a89 183
elmot 1:d0dfbce63a89 184 /** @defgroup STM32L476G_DISCOVERY_BUTTON BUTTON Constants
elmot 1:d0dfbce63a89 185 * @{
elmot 1:d0dfbce63a89 186 */
elmot 1:d0dfbce63a89 187 #define JOYn 5
elmot 1:d0dfbce63a89 188
elmot 1:d0dfbce63a89 189 /**
elmot 1:d0dfbce63a89 190 * @brief Joystick Right push-button
elmot 1:d0dfbce63a89 191 */
elmot 1:d0dfbce63a89 192 #define RIGHT_JOY_PIN GPIO_PIN_2 /* PA.02 */
elmot 1:d0dfbce63a89 193 #define RIGHT_JOY_GPIO_PORT GPIOA
elmot 1:d0dfbce63a89 194 #define RIGHT_JOY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
elmot 1:d0dfbce63a89 195 #define RIGHT_JOY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
elmot 1:d0dfbce63a89 196 #define RIGHT_JOY_EXTI_IRQn EXTI2_IRQn
elmot 1:d0dfbce63a89 197
elmot 1:d0dfbce63a89 198 /**
elmot 1:d0dfbce63a89 199 * @brief Joystick Left push-button
elmot 1:d0dfbce63a89 200 */
elmot 1:d0dfbce63a89 201 #define LEFT_JOY_PIN GPIO_PIN_1 /* PA.01 */
elmot 1:d0dfbce63a89 202 #define LEFT_JOY_GPIO_PORT GPIOA
elmot 1:d0dfbce63a89 203 #define LEFT_JOY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
elmot 1:d0dfbce63a89 204 #define LEFT_JOY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
elmot 1:d0dfbce63a89 205 #define LEFT_JOY_EXTI_IRQn EXTI1_IRQn
elmot 1:d0dfbce63a89 206
elmot 1:d0dfbce63a89 207 /**
elmot 1:d0dfbce63a89 208 * @brief Joystick Up push-button
elmot 1:d0dfbce63a89 209 */
elmot 1:d0dfbce63a89 210 #define UP_JOY_PIN GPIO_PIN_3 /* PA.03 */
elmot 1:d0dfbce63a89 211 #define UP_JOY_GPIO_PORT GPIOA
elmot 1:d0dfbce63a89 212 #define UP_JOY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
elmot 1:d0dfbce63a89 213 #define UP_JOY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
elmot 1:d0dfbce63a89 214 #define UP_JOY_EXTI_IRQn EXTI3_IRQn
elmot 1:d0dfbce63a89 215
elmot 1:d0dfbce63a89 216 /**
elmot 1:d0dfbce63a89 217 * @brief Joystick Down push-button
elmot 1:d0dfbce63a89 218 */
elmot 1:d0dfbce63a89 219 #define DOWN_JOY_PIN GPIO_PIN_5 /* PA.05 */
elmot 1:d0dfbce63a89 220 #define DOWN_JOY_GPIO_PORT GPIOA
elmot 1:d0dfbce63a89 221 #define DOWN_JOY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
elmot 1:d0dfbce63a89 222 #define DOWN_JOY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
elmot 1:d0dfbce63a89 223 #define DOWN_JOY_EXTI_IRQn EXTI9_5_IRQn
elmot 1:d0dfbce63a89 224
elmot 1:d0dfbce63a89 225 /**
elmot 1:d0dfbce63a89 226 * @brief Joystick Sel push-button
elmot 1:d0dfbce63a89 227 */
elmot 1:d0dfbce63a89 228 #define SEL_JOY_PIN GPIO_PIN_0 /* PA.00 */
elmot 1:d0dfbce63a89 229 #define SEL_JOY_GPIO_PORT GPIOA
elmot 1:d0dfbce63a89 230 #define SEL_JOY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
elmot 1:d0dfbce63a89 231 #define SEL_JOY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
elmot 1:d0dfbce63a89 232 #define SEL_JOY_EXTI_IRQn EXTI0_IRQn
elmot 1:d0dfbce63a89 233
elmot 1:d0dfbce63a89 234 #define JOYx_GPIO_CLK_ENABLE(__JOY__) do { if((__JOY__) == JOY_SEL) { SEL_JOY_GPIO_CLK_ENABLE(); } else \
elmot 1:d0dfbce63a89 235 if((__JOY__) == JOY_DOWN) { DOWN_JOY_GPIO_CLK_ENABLE(); } else \
elmot 1:d0dfbce63a89 236 if((__JOY__) == JOY_LEFT) { LEFT_JOY_GPIO_CLK_ENABLE(); } else \
elmot 1:d0dfbce63a89 237 if((__JOY__) == JOY_RIGHT) { RIGHT_JOY_GPIO_CLK_ENABLE(); } else \
elmot 1:d0dfbce63a89 238 if((__JOY__) == JOY_UP) { UP_JOY_GPIO_CLK_ENABLE(); } } while(0)
elmot 1:d0dfbce63a89 239
elmot 1:d0dfbce63a89 240 #define JOYx_GPIO_CLK_DISABLE(__JOY__) do { if((__JOY__) == JOY_SEL) { SEL_JOY_GPIO_CLK_DISABLE(); } else \
elmot 1:d0dfbce63a89 241 if((__JOY__) == JOY_DOWN) { DOWN_JOY_GPIO_CLK_DISABLE(); } else \
elmot 1:d0dfbce63a89 242 if((__JOY__) == JOY_LEFT) { LEFT_JOY_GPIO_CLK_DISABLE(); } else \
elmot 1:d0dfbce63a89 243 if((__JOY__) == JOY_RIGHT) { RIGHT_JOY_GPIO_CLK_DISABLE(); } else \
elmot 1:d0dfbce63a89 244 if((__JOY__) == JOY_UP) { UP_JOY_GPIO_CLK_DISABLE(); } } while(0)
elmot 1:d0dfbce63a89 245
elmot 1:d0dfbce63a89 246 #define JOY_ALL_PINS (RIGHT_JOY_PIN | LEFT_JOY_PIN | UP_JOY_PIN | DOWN_JOY_PIN | SEL_JOY_PIN)
elmot 1:d0dfbce63a89 247
elmot 1:d0dfbce63a89 248 /**
elmot 1:d0dfbce63a89 249 * @}
elmot 1:d0dfbce63a89 250 */
elmot 1:d0dfbce63a89 251
elmot 1:d0dfbce63a89 252 /** @defgroup STM32L476G_DISCOVERY_BUS BUS Constants
elmot 1:d0dfbce63a89 253 * @{
elmot 1:d0dfbce63a89 254 */
elmot 1:d0dfbce63a89 255 #if defined(HAL_SPI_MODULE_ENABLED)
elmot 1:d0dfbce63a89 256 /*##################### SPI2 ###################################*/
elmot 1:d0dfbce63a89 257 #define DISCOVERY_SPIx SPI2
elmot 1:d0dfbce63a89 258 #define DISCOVERY_SPIx_CLOCK_ENABLE() __HAL_RCC_SPI2_CLK_ENABLE()
elmot 1:d0dfbce63a89 259 #define DISCOVERY_SPIx_CLOCK_DISABLE() __HAL_RCC_SPI2_CLK_DISABLE()
elmot 1:d0dfbce63a89 260 #define DISCOVERY_SPIx_GPIO_PORT GPIOD /* GPIOD */
elmot 1:d0dfbce63a89 261 #define DISCOVERY_SPIx_AF GPIO_AF5_SPI2
elmot 1:d0dfbce63a89 262 #define DISCOVERY_SPIx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
elmot 1:d0dfbce63a89 263 #define DISCOVERY_SPIx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE()
elmot 1:d0dfbce63a89 264 #define DISCOVERY_SPIx_GPIO_FORCE_RESET() __HAL_RCC_SPI2_FORCE_RESET()
elmot 1:d0dfbce63a89 265 #define DISCOVERY_SPIx_GPIO_RELEASE_RESET() __HAL_RCC_SPI2_RELEASE_RESET()
elmot 1:d0dfbce63a89 266 #define DISCOVERY_SPIx_SCK_PIN GPIO_PIN_1 /* PD.01*/
elmot 1:d0dfbce63a89 267 #define DISCOVERY_SPIx_MISO_PIN GPIO_PIN_3 /* PD.03 */
elmot 1:d0dfbce63a89 268 #define DISCOVERY_SPIx_MOSI_PIN GPIO_PIN_4 /* PD.04 */
elmot 1:d0dfbce63a89 269
elmot 1:d0dfbce63a89 270 /* Maximum Timeout values for flags waiting loops. These timeouts are not based
elmot 1:d0dfbce63a89 271 on accurate values, they just guarantee that the application will not remain
elmot 1:d0dfbce63a89 272 stuck if the SPI communication is corrupted.
elmot 1:d0dfbce63a89 273 You may modify these timeout values depending on CPU frequency and application
elmot 1:d0dfbce63a89 274 conditions (interrupts routines ...). */
elmot 1:d0dfbce63a89 275 #define SPIx_TIMEOUT_MAX ((uint32_t)0x1000)
elmot 1:d0dfbce63a89 276 /* Read/Write command */
elmot 1:d0dfbce63a89 277 #define READWRITE_CMD ((uint8_t)0x80)
elmot 1:d0dfbce63a89 278 /* Multiple byte read/write command */
elmot 1:d0dfbce63a89 279 #define MULTIPLEBYTE_CMD ((uint8_t)0x40)
elmot 1:d0dfbce63a89 280 /* Dummy Byte Send by the SPI Master device in order to generate the Clock to the Slave device */
elmot 1:d0dfbce63a89 281 #define DUMMY_BYTE ((uint8_t)0x00)
elmot 1:d0dfbce63a89 282
elmot 1:d0dfbce63a89 283 #endif /* HAL_SPI_MODULE_ENABLED */
elmot 1:d0dfbce63a89 284
elmot 1:d0dfbce63a89 285 #if defined(HAL_I2C_MODULE_ENABLED)
elmot 1:d0dfbce63a89 286 /*##################### I2C1 ###################################*/
elmot 1:d0dfbce63a89 287 /* User can use this section to tailor I2C1 instance used and associated
elmot 1:d0dfbce63a89 288 resources */
elmot 1:d0dfbce63a89 289 /* Definition for I2C1 Pins */
elmot 1:d0dfbce63a89 290 #define DISCOVERY_I2C1_SCL_GPIO_PORT GPIOB
elmot 1:d0dfbce63a89 291 #define DISCOVERY_I2C1_SDA_GPIO_PORT GPIOB
elmot 1:d0dfbce63a89 292 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
elmot 1:d0dfbce63a89 293 #define DISCOVERY_I2C1_SCL_PIN GPIO_PIN_6
elmot 1:d0dfbce63a89 294 #define DISCOVERY_I2C1_SDA_PIN GPIO_PIN_7
elmot 1:d0dfbce63a89 295 #elif defined (USE_STM32L476G_DISCO_REVA)
elmot 1:d0dfbce63a89 296 #define DISCOVERY_I2C1_SCL_PIN GPIO_PIN_8
elmot 1:d0dfbce63a89 297 #define DISCOVERY_I2C1_SDA_PIN GPIO_PIN_9
elmot 1:d0dfbce63a89 298 #endif
elmot 1:d0dfbce63a89 299 #define DISCOVERY_I2C1_SCL_SDA_AF GPIO_AF4_I2C1
elmot 1:d0dfbce63a89 300
elmot 1:d0dfbce63a89 301 /* Definition for I2C1 clock resources */
elmot 1:d0dfbce63a89 302 #define DISCOVERY_I2C1 I2C1
elmot 1:d0dfbce63a89 303 #define DISCOVERY_I2C1_CLK_ENABLE() __HAL_RCC_I2C1_CLK_ENABLE()
elmot 1:d0dfbce63a89 304 #define DISCOVERY_I2C1_CLK_DISABLE() __HAL_RCC_I2C1_CLK_DISABLE()
elmot 1:d0dfbce63a89 305 #define DISCOVERY_I2C1_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 306 #define DISCOVERY_I2C1_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 307 #define DISCOVERY_I2C1_SDA_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 308 #define DISCOVERY_I2C1_SCL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 309 #define DISCOVERY_I2C1_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET()
elmot 1:d0dfbce63a89 310 #define DISCOVERY_I2C1_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET()
elmot 1:d0dfbce63a89 311
elmot 1:d0dfbce63a89 312 /* Definition for I2C1's NVIC */
elmot 1:d0dfbce63a89 313 #define DISCOVERY_I2C1_EV_IRQn I2C1_EV_IRQn
elmot 1:d0dfbce63a89 314 #define DISCOVERY_I2C1_EV_IRQHandler I2C1_EV_IRQHandler
elmot 1:d0dfbce63a89 315 #define DISCOVERY_I2C1_ER_IRQn I2C1_ER_IRQn
elmot 1:d0dfbce63a89 316 #define DISCOVERY_I2C1_ER_IRQHandler I2C1_ER_IRQHandler
elmot 1:d0dfbce63a89 317
elmot 1:d0dfbce63a89 318 /* I2C TIMING Register define when I2C clock source is SYSCLK */
elmot 1:d0dfbce63a89 319 /* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 80 MHz */
elmot 1:d0dfbce63a89 320 /* Set 0x90112626 value to reach 100 KHz speed (Rise time = 640ns, Fall time = 20ns) */
elmot 1:d0dfbce63a89 321 #ifndef DISCOVERY_I2C1_TIMING
elmot 1:d0dfbce63a89 322 #define DISCOVERY_I2C1_TIMING 0x90112626
elmot 1:d0dfbce63a89 323 #endif /* DISCOVERY_I2C1_TIMING */
elmot 1:d0dfbce63a89 324
elmot 1:d0dfbce63a89 325 /* I2C clock speed configuration (in Hz)
elmot 1:d0dfbce63a89 326 WARNING:
elmot 1:d0dfbce63a89 327 Make sure that this define is not already declared in other files (ie.
elmot 1:d0dfbce63a89 328 stm324xg_discovery.h file). It can be used in parallel by other modules. */
elmot 1:d0dfbce63a89 329 #ifndef BSP_I2C_SPEED
elmot 1:d0dfbce63a89 330 #define BSP_I2C_SPEED 100000
elmot 1:d0dfbce63a89 331 #endif /* BSP_I2C_SPEED */
elmot 1:d0dfbce63a89 332
elmot 1:d0dfbce63a89 333
elmot 1:d0dfbce63a89 334 /* Audio codec I2C address */
elmot 1:d0dfbce63a89 335 #define AUDIO_I2C_ADDRESS ((uint16_t) 0x94)
elmot 1:d0dfbce63a89 336
elmot 1:d0dfbce63a89 337 /* Maximum Timeout values for flags waiting loops. These timeouts are not based
elmot 1:d0dfbce63a89 338 on accurate values, they just guarantee that the application will not remain
elmot 1:d0dfbce63a89 339 stuck if the I2C communication is corrupted.
elmot 1:d0dfbce63a89 340 You may modify these timeout values depending on CPU frequency and application
elmot 1:d0dfbce63a89 341 conditions (interrupts routines ...). */
elmot 1:d0dfbce63a89 342 #define DISCOVERY_I2C1_TIMEOUT_MAX 3000
elmot 1:d0dfbce63a89 343
elmot 1:d0dfbce63a89 344
elmot 1:d0dfbce63a89 345 /*##################### I2C2 ###################################*/
elmot 1:d0dfbce63a89 346 /* User can use this section to tailor I2C2 instance used and associated
elmot 1:d0dfbce63a89 347 resources */
elmot 1:d0dfbce63a89 348 /* Definition for I2C2 Pins */
elmot 1:d0dfbce63a89 349 #define DISCOVERY_I2C2_SCL_PIN GPIO_PIN_10
elmot 1:d0dfbce63a89 350 #define DISCOVERY_I2C2_SCL_GPIO_PORT GPIOB
elmot 1:d0dfbce63a89 351 #define DISCOVERY_I2C2_SDA_PIN GPIO_PIN_11
elmot 1:d0dfbce63a89 352 #define DISCOVERY_I2C2_SDA_GPIO_PORT GPIOB
elmot 1:d0dfbce63a89 353 #define DISCOVERY_I2C2_SCL_SDA_AF GPIO_AF4_I2C2
elmot 1:d0dfbce63a89 354 /* Definition for I2C2 clock resources */
elmot 1:d0dfbce63a89 355 #define DISCOVERY_I2C2 I2C2
elmot 1:d0dfbce63a89 356 #define DISCOVERY_I2C2_CLK_ENABLE() __HAL_RCC_I2C2_CLK_ENABLE()
elmot 1:d0dfbce63a89 357 #define DISCOVERY_I2C2_CLK_DISABLE() __HAL_RCC_I2C2_CLK_DISABLE()
elmot 1:d0dfbce63a89 358 #define DISCOVERY_I2C2_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 359 #define DISCOVERY_I2C2_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 360 #define DISCOVERY_I2C2_SDA_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 361 #define DISCOVERY_I2C2_SCL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 362 #define DISCOVERY_I2C2_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET()
elmot 1:d0dfbce63a89 363 #define DISCOVERY_I2C2_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET()
elmot 1:d0dfbce63a89 364
elmot 1:d0dfbce63a89 365 /* Definition for I2C2's NVIC */
elmot 1:d0dfbce63a89 366 #define DISCOVERY_I2C2_EV_IRQn I2C2_EV_IRQn
elmot 1:d0dfbce63a89 367 #define DISCOVERY_I2C2_ER_IRQn I2C2_ER_IRQn
elmot 1:d0dfbce63a89 368
elmot 1:d0dfbce63a89 369 /* I2C TIMING Register define when I2C clock source is SYSCLK */
elmot 1:d0dfbce63a89 370 /* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 80 MHz */
elmot 1:d0dfbce63a89 371 /* Set 0x90112626 value to reach 100 KHz speed (Rise time = 640ns, Fall time = 20ns) */
elmot 1:d0dfbce63a89 372 #ifndef DISCOVERY_I2C2_TIMING
elmot 1:d0dfbce63a89 373 #define DISCOVERY_I2C2_TIMING 0x90112626
elmot 1:d0dfbce63a89 374 #endif /* DISCOVERY_I2C2_TIMING */
elmot 1:d0dfbce63a89 375
elmot 1:d0dfbce63a89 376 /* I2C clock speed configuration (in Hz)
elmot 1:d0dfbce63a89 377 WARNING:
elmot 1:d0dfbce63a89 378 Make sure that this define is not already declared in other files (ie.
elmot 1:d0dfbce63a89 379 stm324xg_discovery.h file). It can be used in parallel by other modules. */
elmot 1:d0dfbce63a89 380 #ifndef BSP_I2C_SPEED
elmot 1:d0dfbce63a89 381 #define BSP_I2C_SPEED 100000
elmot 1:d0dfbce63a89 382 #endif /* BSP_I2C_SPEED */
elmot 1:d0dfbce63a89 383
elmot 1:d0dfbce63a89 384 #define IDD_I2C_ADDRESS ((uint16_t) 0x84)
elmot 1:d0dfbce63a89 385
elmot 1:d0dfbce63a89 386 /* Maximum Timeout values for flags waiting loops. These timeouts are not based
elmot 1:d0dfbce63a89 387 on accurate values, they just guarantee that the application will not remain
elmot 1:d0dfbce63a89 388 stuck if the I2C communication is corrupted.
elmot 1:d0dfbce63a89 389 You may modify these timeout values depending on CPU frequency and application
elmot 1:d0dfbce63a89 390 conditions (interrupts routines ...). */
elmot 1:d0dfbce63a89 391 #define DISCOVERY_I2C2_TIMEOUT_MAX 3000
elmot 1:d0dfbce63a89 392 #endif /* HAL_I2C_MODULE_ENABLED */
elmot 1:d0dfbce63a89 393
elmot 1:d0dfbce63a89 394 /*##################### Accelerometer ##########################*/
elmot 1:d0dfbce63a89 395 /**
elmot 1:d0dfbce63a89 396 * @brief Accelerometer Chip Select macro definition
elmot 1:d0dfbce63a89 397 */
elmot 1:d0dfbce63a89 398 #define ACCELERO_CS_LOW() HAL_GPIO_WritePin(ACCELERO_CS_GPIO_PORT, ACCELERO_CS_PIN, GPIO_PIN_RESET)
elmot 1:d0dfbce63a89 399 #define ACCELERO_CS_HIGH() HAL_GPIO_WritePin(ACCELERO_CS_GPIO_PORT, ACCELERO_CS_PIN, GPIO_PIN_SET)
elmot 1:d0dfbce63a89 400
elmot 1:d0dfbce63a89 401 /**
elmot 1:d0dfbce63a89 402 * @brief Accelerometer SPI Interface pins
elmot 1:d0dfbce63a89 403 */
elmot 1:d0dfbce63a89 404 #define ACCELERO_CS_GPIO_PORT GPIOE /* GPIOE */
elmot 1:d0dfbce63a89 405 #define ACCELERO_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE()
elmot 1:d0dfbce63a89 406 #define ACCELERO_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE()
elmot 1:d0dfbce63a89 407 #define ACCELERO_CS_PIN GPIO_PIN_0 /* PE.00 */
elmot 1:d0dfbce63a89 408
elmot 1:d0dfbce63a89 409 /**
elmot 1:d0dfbce63a89 410 * @brief Accelerometer Interrupt pins
elmot 1:d0dfbce63a89 411 */
elmot 1:d0dfbce63a89 412 #define ACCELERO_XLINT_GPIO_PORT GPIOE /* GPIOE */
elmot 1:d0dfbce63a89 413 #define ACCELERO_XLINT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE()
elmot 1:d0dfbce63a89 414 #define ACCELERO_XLINT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE()
elmot 1:d0dfbce63a89 415 #define ACCELERO_XLINT_PIN GPIO_PIN_1 /* PE.01 */
elmot 1:d0dfbce63a89 416 #define ACCELERO_XLINT_EXTI_IRQn EXTI1_IRQn
elmot 1:d0dfbce63a89 417
elmot 1:d0dfbce63a89 418 /*##################### Magnetometer ##########################*/
elmot 1:d0dfbce63a89 419 /**
elmot 1:d0dfbce63a89 420 * @brief Magnetometer Chip Select macro definition
elmot 1:d0dfbce63a89 421 */
elmot 1:d0dfbce63a89 422 #define MAGNETO_CS_LOW() HAL_GPIO_WritePin(MAGNETO_CS_GPIO_PORT, MAGNETO_CS_PIN, GPIO_PIN_RESET)
elmot 1:d0dfbce63a89 423 #define MAGNETO_CS_HIGH() HAL_GPIO_WritePin(MAGNETO_CS_GPIO_PORT, MAGNETO_CS_PIN, GPIO_PIN_SET)
elmot 1:d0dfbce63a89 424
elmot 1:d0dfbce63a89 425 /**
elmot 1:d0dfbce63a89 426 * @brief Magnetometer SPI Interface pins
elmot 1:d0dfbce63a89 427 */
elmot 1:d0dfbce63a89 428 #define MAGNETO_CS_GPIO_PORT GPIOC /* GPIOC */
elmot 1:d0dfbce63a89 429 #define MAGNETO_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
elmot 1:d0dfbce63a89 430 #define MAGNETO_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()
elmot 1:d0dfbce63a89 431 #define MAGNETO_CS_PIN GPIO_PIN_0 /* PC.00 */
elmot 1:d0dfbce63a89 432
elmot 1:d0dfbce63a89 433
elmot 1:d0dfbce63a89 434 /**
elmot 1:d0dfbce63a89 435 * @brief Magnetometer Interrupt pins
elmot 1:d0dfbce63a89 436 */
elmot 1:d0dfbce63a89 437 #define MAGNETO_INT_GPIO_PORT GPIOC /* GPIOC */
elmot 1:d0dfbce63a89 438 #define MAGNETO_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
elmot 1:d0dfbce63a89 439 #define MAGNETO_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()
elmot 1:d0dfbce63a89 440 #define MAGNETO_INT1_PIN GPIO_PIN_1 /* PC.01 */
elmot 1:d0dfbce63a89 441 #define MAGNETO_INT1_EXTI_IRQn EXTI1_IRQn
elmot 1:d0dfbce63a89 442
elmot 1:d0dfbce63a89 443 #define MAGNETO_DRDY_GPIO_PORT GPIOC /* GPIOC */
elmot 1:d0dfbce63a89 444 #define MAGNETO_DRDY_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
elmot 1:d0dfbce63a89 445 #define MAGNETO_DRDY_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()
elmot 1:d0dfbce63a89 446 #define MAGNETO_DRDY_PIN GPIO_PIN_2 /* PC.01 */
elmot 1:d0dfbce63a89 447
elmot 1:d0dfbce63a89 448
elmot 1:d0dfbce63a89 449 /*##################### Audio Codec ##########################*/
elmot 1:d0dfbce63a89 450 /**
elmot 1:d0dfbce63a89 451 * @brief Audio codec chip reset definition
elmot 1:d0dfbce63a89 452 */
elmot 1:d0dfbce63a89 453 /* Audio codec power on/off macro definition */
elmot 1:d0dfbce63a89 454 #define CODEC_AUDIO_POWER_OFF() HAL_GPIO_WritePin(AUDIO_RESET_GPIO, AUDIO_RESET_PIN, GPIO_PIN_RESET)
elmot 1:d0dfbce63a89 455 #define CODEC_AUDIO_POWER_ON() HAL_GPIO_WritePin(AUDIO_RESET_GPIO, AUDIO_RESET_PIN, GPIO_PIN_SET)
elmot 1:d0dfbce63a89 456
elmot 1:d0dfbce63a89 457 /* Audio Reset Pin definition */
elmot 1:d0dfbce63a89 458 #define AUDIO_RESET_GPIO_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE()
elmot 1:d0dfbce63a89 459 #define AUDIO_RESET_GPIO_CLK_DISABLE() __HAL_RCC_GPIOE_CLK_DISABLE()
elmot 1:d0dfbce63a89 460 #define AUDIO_RESET_PIN GPIO_PIN_3
elmot 1:d0dfbce63a89 461 #define AUDIO_RESET_GPIO GPIOE
elmot 1:d0dfbce63a89 462
elmot 1:d0dfbce63a89 463 /*##################### Gyroscope ##########################*/
elmot 1:d0dfbce63a89 464 /**
elmot 1:d0dfbce63a89 465 * @brief Gyroscope Chip Select macro definition
elmot 1:d0dfbce63a89 466 */
elmot 1:d0dfbce63a89 467 #define GYRO_CS_LOW() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_RESET)
elmot 1:d0dfbce63a89 468 #define GYRO_CS_HIGH() HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_SET)
elmot 1:d0dfbce63a89 469
elmot 1:d0dfbce63a89 470 /**
elmot 1:d0dfbce63a89 471 * @brief Gyroscope SPI Interface pins
elmot 1:d0dfbce63a89 472 */
elmot 1:d0dfbce63a89 473 #define GYRO_CS_GPIO_PORT GPIOD /* GPIOD */
elmot 1:d0dfbce63a89 474 #define GYRO_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
elmot 1:d0dfbce63a89 475 #define GYRO_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE()
elmot 1:d0dfbce63a89 476 #define GYRO_CS_PIN GPIO_PIN_7 /* PD.07 */
elmot 1:d0dfbce63a89 477
elmot 1:d0dfbce63a89 478 /**
elmot 1:d0dfbce63a89 479 * @brief Gyroscope Interrupt pins
elmot 1:d0dfbce63a89 480 */
elmot 1:d0dfbce63a89 481 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
elmot 1:d0dfbce63a89 482 #define GYRO_INT1_GPIO_PORT GPIOD /* GPIOD */
elmot 1:d0dfbce63a89 483 #define GYRO_INT1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
elmot 1:d0dfbce63a89 484 #define GYRO_INT1_GPIO_CLK_DISABLE() __HAL_RCC_GPIOD_CLK_DISABLE()
elmot 1:d0dfbce63a89 485 #define GYRO_INT1_PIN GPIO_PIN_2 /* PD.02 */
elmot 1:d0dfbce63a89 486 #define GYRO_INT1_EXTI_IRQn EXTI2_IRQn
elmot 1:d0dfbce63a89 487 #define GYRO_INT2_GPIO_PORT GPIOB /* GPIOB */
elmot 1:d0dfbce63a89 488 #define GYRO_INT2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 489 #define GYRO_INT2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 490 #define GYRO_INT2_PIN GPIO_PIN_8 /* PB.08 */
elmot 1:d0dfbce63a89 491 #define GYRO_INT2_EXTI_IRQn EXTI9_5_IRQn
elmot 1:d0dfbce63a89 492 #elif defined (USE_STM32L476G_DISCO_REVA)
elmot 1:d0dfbce63a89 493 #define GYRO_INT1_GPIO_PORT GPIOB /* GPIOB */
elmot 1:d0dfbce63a89 494 #define GYRO_INT1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 495 #define GYRO_INT1_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 496 #define GYRO_INT1_PIN GPIO_PIN_6 /* PB.06 */
elmot 1:d0dfbce63a89 497 #define GYRO_INT1_EXTI_IRQn EXTI9_5_IRQn
elmot 1:d0dfbce63a89 498 #define GYRO_INT2_GPIO_PORT GPIOB /* GPIOB */
elmot 1:d0dfbce63a89 499 #define GYRO_INT2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
elmot 1:d0dfbce63a89 500 #define GYRO_INT2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
elmot 1:d0dfbce63a89 501 #define GYRO_INT2_PIN GPIO_PIN_7 /* PB.07 */
elmot 1:d0dfbce63a89 502 #define GYRO_INT2_EXTI_IRQn EXTI9_5_IRQn
elmot 1:d0dfbce63a89 503 #endif
elmot 1:d0dfbce63a89 504
elmot 1:d0dfbce63a89 505 /*##################### Idd ##########################*/
elmot 1:d0dfbce63a89 506 /**
elmot 1:d0dfbce63a89 507 * @brief Idd current measurement interface pins
elmot 1:d0dfbce63a89 508 */
elmot 1:d0dfbce63a89 509 #define IDD_INT_GPIO_PORT GPIOC /* GPIOC */
elmot 1:d0dfbce63a89 510 #define IDD_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
elmot 1:d0dfbce63a89 511 #define IDD_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()
elmot 1:d0dfbce63a89 512 #define IDD_INT_PIN GPIO_PIN_13 /* PC.13 */
elmot 1:d0dfbce63a89 513 #define IDD_INT_EXTI_IRQn EXTI15_10_IRQn
elmot 1:d0dfbce63a89 514
elmot 1:d0dfbce63a89 515 #define IDD_WAKEUP_GPIO_PORT GPIOA /* GPIOA */
elmot 1:d0dfbce63a89 516 #define IDD_WAKEUP_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
elmot 1:d0dfbce63a89 517 #define IDD_WAKEUP_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
elmot 1:d0dfbce63a89 518 #define IDD_WAKEUP_PIN GPIO_PIN_4 /* PA.04 */
elmot 1:d0dfbce63a89 519
elmot 1:d0dfbce63a89 520 /**
elmot 1:d0dfbce63a89 521 * @}
elmot 1:d0dfbce63a89 522 */
elmot 1:d0dfbce63a89 523
elmot 1:d0dfbce63a89 524 /**
elmot 1:d0dfbce63a89 525 * @}
elmot 1:d0dfbce63a89 526 */
elmot 1:d0dfbce63a89 527
elmot 1:d0dfbce63a89 528
elmot 1:d0dfbce63a89 529 /** @defgroup STM32L476G_DISCOVERY_Exported_Functions Exported Functions
elmot 1:d0dfbce63a89 530 * @{
elmot 1:d0dfbce63a89 531 */
elmot 1:d0dfbce63a89 532 uint32_t BSP_GetVersion(void);
elmot 1:d0dfbce63a89 533 SupplyMode_TypeDef BSP_SupplyModeDetection(void);
elmot 1:d0dfbce63a89 534 void BSP_LED_Init(Led_TypeDef Led);
elmot 1:d0dfbce63a89 535 void BSP_LED_DeInit(Led_TypeDef Led);
elmot 1:d0dfbce63a89 536 void BSP_LED_On(Led_TypeDef Led);
elmot 1:d0dfbce63a89 537 void BSP_LED_Off(Led_TypeDef Led);
elmot 1:d0dfbce63a89 538 void BSP_LED_Toggle(Led_TypeDef Led);
elmot 1:d0dfbce63a89 539 uint8_t BSP_JOY_Init(JOYMode_TypeDef Joy_Mode);
elmot 1:d0dfbce63a89 540 void BSP_JOY_DeInit(void);
elmot 1:d0dfbce63a89 541 JOYState_TypeDef BSP_JOY_GetState(void);
elmot 1:d0dfbce63a89 542
elmot 1:d0dfbce63a89 543 /**
elmot 1:d0dfbce63a89 544 * @}
elmot 1:d0dfbce63a89 545 */
elmot 1:d0dfbce63a89 546
elmot 1:d0dfbce63a89 547 /**
elmot 1:d0dfbce63a89 548 * @}
elmot 1:d0dfbce63a89 549 */
elmot 1:d0dfbce63a89 550
elmot 1:d0dfbce63a89 551 /**
elmot 1:d0dfbce63a89 552 * @}
elmot 1:d0dfbce63a89 553 */
elmot 1:d0dfbce63a89 554
elmot 1:d0dfbce63a89 555 /**
elmot 1:d0dfbce63a89 556 * @}
elmot 1:d0dfbce63a89 557 */
elmot 1:d0dfbce63a89 558
elmot 1:d0dfbce63a89 559 #ifdef __cplusplus
elmot 1:d0dfbce63a89 560 }
elmot 1:d0dfbce63a89 561 #endif
elmot 1:d0dfbce63a89 562
elmot 1:d0dfbce63a89 563 #endif /* __STM32L476G_DISCOVERY_H */
elmot 1:d0dfbce63a89 564
elmot 1:d0dfbce63a89 565 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/