E&R S3 prime / BSP_DISCO_L476VG
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stm32l476g_discovery.h Source File

stm32l476g_discovery.h

Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32l476g_discovery.h
00004   * @author  MCD Application Team
00005   * @brief   This file contains definitions for STM32L476G_DISCOVERY's LEDs,
00006   *          push-buttons hardware resources (MB1184).
00007   ******************************************************************************
00008   * @attention
00009   *
00010   * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
00011   * All rights reserved.</center></h2>
00012   *
00013   * This software component is licensed by ST under BSD 3-Clause license,
00014   * the "License"; You may not use this file except in compliance with the
00015   * License. You may obtain a copy of the License at:
00016   *                        opensource.org/licenses/BSD-3-Clause
00017   *
00018   ******************************************************************************
00019   */
00020 
00021 /* Define to prevent recursive inclusion -------------------------------------*/
00022 #ifndef __STM32L476G_DISCOVERY_H
00023 #define __STM32L476G_DISCOVERY_H
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 /**
00030   * @brief  Define for STM32L476G_DISCOVERY board
00031   */
00032 #if !defined (USE_STM32L476G_DISCO_REVC) && !defined (USE_STM32L476G_DISCO_REVB) && !defined (USE_STM32L476G_DISCO_REVA)
00033 #define USE_STM32L476G_DISCO_REVC
00034 #endif
00035 
00036 
00037 /* Includes ------------------------------------------------------------------*/
00038 #include "stm32l4xx_hal.h"
00039 
00040 /** @addtogroup BSP
00041   * @{
00042   */
00043 
00044 /** @addtogroup STM32L476G_DISCOVERY
00045   * @{
00046   */
00047 
00048 /** @addtogroup STM32L476G_DISCOVERY_Common
00049   * @{
00050   */
00051 
00052 /** @defgroup STM32L476G_DISCOVERY_Exported_Types Exported Types
00053   * @{
00054   */
00055 
00056 /**
00057  * @brief LED Types Definition
00058  */
00059 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
00060 typedef enum
00061 {
00062   DISCO_LED4 = 0,
00063   DISCO_LED5 = 1,
00064   LED_RED    = DISCO_LED4,
00065   LED_GREEN  = DISCO_LED5
00066 }
00067 Led_TypeDef;
00068 #elif defined (USE_STM32L476G_DISCO_REVA)
00069 typedef enum
00070 {
00071   DISCO_LED3 = 0,
00072   DISCO_LED4 = 1,
00073   LED_RED    = DISCO_LED3,
00074   LED_GREEN  = DISCO_LED4
00075 }
00076 Led_TypeDef;
00077 #endif
00078 
00079 /**
00080  * @brief JOYSTICK Types Definition
00081  */
00082 typedef enum
00083 {
00084   JOY_SEL   = 0,
00085   JOY_LEFT  = 1,
00086   JOY_RIGHT = 2,
00087   JOY_DOWN  = 3,
00088   JOY_UP    = 4,
00089   JOY_NONE  = 5
00090 } JOYState_TypeDef;
00091 
00092 typedef enum
00093 {
00094   JOY_MODE_GPIO = 0,
00095   JOY_MODE_EXTI = 1
00096 } JOYMode_TypeDef;
00097 
00098 typedef enum
00099 {
00100   SUPPLY_MODE_ERROR = 0,
00101   SUPPLY_MODE_EXTERNAL = 1,
00102   SUPPLY_MODE_BATTERY = 2
00103 } SupplyMode_TypeDef;
00104 
00105 /**
00106   * @}
00107   */
00108 
00109 /** @defgroup STM32L476G_DISCOVERY_Exported_Constants Exported Constants
00110   * @{
00111   */
00112 
00113 /** @defgroup STM32L476G_DISCOVERY_BATTERY BATTERY Detection Constants
00114   * @{
00115   */
00116 #define BATTERY_DETECTION_PIN                 GPIO_PIN_3
00117 #define BATTERY_DETECTION_GPIO_PORT           GPIOB
00118 #define BATTERY_DETECTION_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOB_CLK_ENABLE()
00119 #define BATTERY_DETECTION_GPIO_CLK_DISABLE()  __HAL_RCC_GPIOB_CLK_DISABLE()
00120 /**
00121   * @}
00122   */
00123 
00124 /** @defgroup STM32L476G_DISCOVERY_LED LED Constants
00125   * @{
00126   */
00127 #define LEDn                              2
00128 
00129 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
00130 #define LED4_PIN                          GPIO_PIN_2
00131 #define LED4_GPIO_PORT                    GPIOB
00132 #define LED4_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOB_CLK_ENABLE()
00133 #define LED4_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOB_CLK_DISABLE()
00134 
00135 #define LED5_PIN                          GPIO_PIN_8
00136 #define LED5_GPIO_PORT                    GPIOE
00137 #define LED5_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOE_CLK_ENABLE()
00138 #define LED5_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOE_CLK_DISABLE()
00139 
00140 #define LEDx_GPIO_CLK_ENABLE(__LED__)     do { if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_ENABLE(); } else \
00141                                                if((__LED__) == DISCO_LED5) { LED5_GPIO_CLK_ENABLE(); } } while(0)
00142 
00143 #define LEDx_GPIO_CLK_DISABLE(__LED__)    do { if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_DISABLE(); } else \
00144                                                if((__LED__) == DISCO_LED5) { LED5_GPIO_CLK_DISABLE(); } } while(0)
00145 
00146 #elif defined (USE_STM32L476G_DISCO_REVA)
00147 #define LED3_PIN                          GPIO_PIN_2
00148 #define LED3_GPIO_PORT                    GPIOB
00149 #define LED3_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOB_CLK_ENABLE()
00150 #define LED3_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOB_CLK_DISABLE()
00151 
00152 #define LED4_PIN                          GPIO_PIN_8
00153 #define LED4_GPIO_PORT                    GPIOE
00154 #define LED4_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOE_CLK_ENABLE()
00155 #define LED4_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOE_CLK_DISABLE()
00156 
00157 #define LEDx_GPIO_CLK_ENABLE(__LED__)     do { if((__LED__) == DISCO_LED3) { LED3_GPIO_CLK_ENABLE(); } else \
00158                                                if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_ENABLE(); } } while(0)
00159 
00160 #define LEDx_GPIO_CLK_DISABLE(__LED__)    do { if((__LED__) == DISCO_LED3) { LED3_GPIO_CLK_DISABLE(); } else \
00161                                                if((__LED__) == DISCO_LED4) { LED4_GPIO_CLK_DISABLE(); } } while(0)
00162 
00163 #endif
00164 /**
00165   * @}
00166   */
00167 
00168 /** @defgroup STM32L476G_DISCOVERY_BUTTON  BUTTON Constants
00169   * @{
00170   */
00171 #define JOYn                              5
00172 
00173 /**
00174 * @brief Joystick Right push-button
00175 */
00176 #define RIGHT_JOY_PIN                     GPIO_PIN_2  /* PA.02 */
00177 #define RIGHT_JOY_GPIO_PORT               GPIOA
00178 #define RIGHT_JOY_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOA_CLK_ENABLE()
00179 #define RIGHT_JOY_GPIO_CLK_DISABLE()      __HAL_RCC_GPIOA_CLK_DISABLE()
00180 #define RIGHT_JOY_EXTI_IRQn               EXTI2_IRQn
00181 
00182 /**
00183 * @brief Joystick Left push-button
00184 */
00185 #define LEFT_JOY_PIN                      GPIO_PIN_1  /* PA.01 */
00186 #define LEFT_JOY_GPIO_PORT                GPIOA
00187 #define LEFT_JOY_GPIO_CLK_ENABLE()        __HAL_RCC_GPIOA_CLK_ENABLE()
00188 #define LEFT_JOY_GPIO_CLK_DISABLE()       __HAL_RCC_GPIOA_CLK_DISABLE()
00189 #define LEFT_JOY_EXTI_IRQn                EXTI1_IRQn
00190 
00191 /**
00192 * @brief Joystick Up push-button
00193 */
00194 #define UP_JOY_PIN                        GPIO_PIN_3  /* PA.03 */
00195 #define UP_JOY_GPIO_PORT                  GPIOA
00196 #define UP_JOY_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOA_CLK_ENABLE()
00197 #define UP_JOY_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOA_CLK_DISABLE()
00198 #define UP_JOY_EXTI_IRQn                  EXTI3_IRQn
00199 
00200 /**
00201  * @brief Joystick Down push-button
00202  */
00203 #define DOWN_JOY_PIN                      GPIO_PIN_5   /* PA.05 */
00204 #define DOWN_JOY_GPIO_PORT                GPIOA
00205 #define DOWN_JOY_GPIO_CLK_ENABLE()        __HAL_RCC_GPIOA_CLK_ENABLE()
00206 #define DOWN_JOY_GPIO_CLK_DISABLE()       __HAL_RCC_GPIOA_CLK_DISABLE()
00207 #define DOWN_JOY_EXTI_IRQn                EXTI9_5_IRQn
00208 
00209 /**
00210  * @brief Joystick Sel push-button
00211  */
00212 #define SEL_JOY_PIN                       GPIO_PIN_0   /* PA.00 */
00213 #define SEL_JOY_GPIO_PORT                 GPIOA
00214 #define SEL_JOY_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOA_CLK_ENABLE()
00215 #define SEL_JOY_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOA_CLK_DISABLE()
00216 #define SEL_JOY_EXTI_IRQn                 EXTI0_IRQn
00217 
00218 #define JOYx_GPIO_CLK_ENABLE(__JOY__)     do { if((__JOY__) == JOY_SEL)   { SEL_JOY_GPIO_CLK_ENABLE();   } else \
00219                                                if((__JOY__) == JOY_DOWN)  { DOWN_JOY_GPIO_CLK_ENABLE();  } else \
00220                                                if((__JOY__) == JOY_LEFT)  { LEFT_JOY_GPIO_CLK_ENABLE();  } else \
00221                                                if((__JOY__) == JOY_RIGHT) { RIGHT_JOY_GPIO_CLK_ENABLE(); } else \
00222                                                if((__JOY__) == JOY_UP)    { UP_JOY_GPIO_CLK_ENABLE(); }  } while(0)
00223 
00224 #define JOYx_GPIO_CLK_DISABLE(__JOY__)    do { if((__JOY__) == JOY_SEL)   { SEL_JOY_GPIO_CLK_DISABLE();   } else \
00225                                                if((__JOY__) == JOY_DOWN)  { DOWN_JOY_GPIO_CLK_DISABLE();  } else \
00226                                                if((__JOY__) == JOY_LEFT)  { LEFT_JOY_GPIO_CLK_DISABLE();  } else \
00227                                                if((__JOY__) == JOY_RIGHT) { RIGHT_JOY_GPIO_CLK_DISABLE(); } else \
00228                                                if((__JOY__) == JOY_UP)    { UP_JOY_GPIO_CLK_DISABLE(); }  } while(0)
00229 
00230 #define JOY_ALL_PINS                      (RIGHT_JOY_PIN | LEFT_JOY_PIN | UP_JOY_PIN | DOWN_JOY_PIN | SEL_JOY_PIN)
00231 
00232 /**
00233   * @}
00234   */
00235 
00236 /** @defgroup STM32L476G_DISCOVERY_BUS  BUS Constants
00237   * @{
00238   */
00239 #if defined(HAL_SPI_MODULE_ENABLED)
00240 /*##################### SPI2 ###################################*/
00241 #define DISCOVERY_SPIx                          SPI2
00242 #define DISCOVERY_SPIx_CLOCK_ENABLE()           __HAL_RCC_SPI2_CLK_ENABLE()
00243 #define DISCOVERY_SPIx_CLOCK_DISABLE()          __HAL_RCC_SPI2_CLK_DISABLE()
00244 #define DISCOVERY_SPIx_GPIO_PORT                GPIOD                      /* GPIOD */
00245 #define DISCOVERY_SPIx_AF                       GPIO_AF5_SPI2
00246 #define DISCOVERY_SPIx_GPIO_CLK_ENABLE()        __HAL_RCC_GPIOD_CLK_ENABLE()
00247 #define DISCOVERY_SPIx_GPIO_CLK_DISABLE()       __HAL_RCC_GPIOD_CLK_DISABLE()
00248 #define DISCOVERY_SPIx_GPIO_FORCE_RESET()       __HAL_RCC_SPI2_FORCE_RESET()
00249 #define DISCOVERY_SPIx_GPIO_RELEASE_RESET()     __HAL_RCC_SPI2_RELEASE_RESET()
00250 #define DISCOVERY_SPIx_SCK_PIN                  GPIO_PIN_1                 /* PD.01*/
00251 #define DISCOVERY_SPIx_MISO_PIN                 GPIO_PIN_3                 /* PD.03 */
00252 #define DISCOVERY_SPIx_MOSI_PIN                 GPIO_PIN_4                 /* PD.04 */
00253 
00254 /* Maximum Timeout values for flags waiting loops. These timeouts are not based
00255    on accurate values, they just guarantee that the application will not remain
00256    stuck if the SPI communication is corrupted.
00257    You may modify these timeout values depending on CPU frequency and application
00258    conditions (interrupts routines ...). */
00259 #define SPIx_TIMEOUT_MAX                        ((uint32_t)0x1000)
00260 /* Read/Write command */
00261 #define READWRITE_CMD                           ((uint8_t)0x80)
00262 /* Multiple byte read/write command */
00263 #define MULTIPLEBYTE_CMD                        ((uint8_t)0x40)
00264 /* Dummy Byte Send by the SPI Master device in order to generate the Clock to the Slave device */
00265 #define DUMMY_BYTE                              ((uint8_t)0x00)
00266 
00267 #endif /* HAL_SPI_MODULE_ENABLED */
00268 
00269 #if defined(HAL_I2C_MODULE_ENABLED)
00270 /*##################### I2C1 ###################################*/
00271 /* User can use this section to tailor I2C1 instance used and associated
00272    resources */
00273 /* Definition for I2C1 Pins */
00274 #define DISCOVERY_I2C1_SCL_GPIO_PORT            GPIOB
00275 #define DISCOVERY_I2C1_SDA_GPIO_PORT            GPIOB
00276 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
00277 #define DISCOVERY_I2C1_SCL_PIN                  GPIO_PIN_6
00278 #define DISCOVERY_I2C1_SDA_PIN                  GPIO_PIN_7
00279 #elif defined (USE_STM32L476G_DISCO_REVA)
00280 #define DISCOVERY_I2C1_SCL_PIN                  GPIO_PIN_8
00281 #define DISCOVERY_I2C1_SDA_PIN                  GPIO_PIN_9
00282 #endif
00283 #define DISCOVERY_I2C1_SCL_SDA_AF               GPIO_AF4_I2C1
00284 
00285 /* Definition for I2C1 clock resources */
00286 #define DISCOVERY_I2C1                          I2C1
00287 #define DISCOVERY_I2C1_CLK_ENABLE()             __HAL_RCC_I2C1_CLK_ENABLE()
00288 #define DISCOVERY_I2C1_CLK_DISABLE()            __HAL_RCC_I2C1_CLK_DISABLE()
00289 #define DISCOVERY_I2C1_SDA_GPIO_CLK_ENABLE()    __HAL_RCC_GPIOB_CLK_ENABLE()
00290 #define DISCOVERY_I2C1_SCL_GPIO_CLK_ENABLE()    __HAL_RCC_GPIOB_CLK_ENABLE()
00291 #define DISCOVERY_I2C1_SDA_GPIO_CLK_DISABLE()   __HAL_RCC_GPIOB_CLK_DISABLE()
00292 #define DISCOVERY_I2C1_SCL_GPIO_CLK_DISABLE()   __HAL_RCC_GPIOB_CLK_DISABLE()
00293 #define DISCOVERY_I2C1_FORCE_RESET()            __HAL_RCC_I2C1_FORCE_RESET()
00294 #define DISCOVERY_I2C1_RELEASE_RESET()          __HAL_RCC_I2C1_RELEASE_RESET()
00295 
00296 /* Definition for I2C1's NVIC */
00297 #define DISCOVERY_I2C1_EV_IRQn                  I2C1_EV_IRQn
00298 #define DISCOVERY_I2C1_EV_IRQHandler            I2C1_EV_IRQHandler
00299 #define DISCOVERY_I2C1_ER_IRQn                  I2C1_ER_IRQn
00300 #define DISCOVERY_I2C1_ER_IRQHandler            I2C1_ER_IRQHandler
00301 
00302 /* I2C TIMING Register define when I2C clock source is SYSCLK */
00303 /* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 80 MHz */
00304 /* Set 0x90112626 value to reach 100 KHz speed (Rise time = 640ns, Fall time = 20ns) */
00305 #ifndef DISCOVERY_I2C1_TIMING
00306 #define DISCOVERY_I2C1_TIMING                  0x90112626
00307 #endif /* DISCOVERY_I2C1_TIMING */
00308 
00309 /* I2C clock speed configuration (in Hz)
00310    WARNING:
00311    Make sure that this define is not already declared in other files (ie.
00312    stm324xg_discovery.h file). It can be used in parallel by other modules. */
00313 #ifndef BSP_I2C_SPEED
00314 #define BSP_I2C_SPEED                              100000
00315 #endif /* BSP_I2C_SPEED */
00316 
00317 
00318 /* Audio codec I2C address */
00319 #define AUDIO_I2C_ADDRESS                       ((uint16_t) 0x94)
00320 
00321 /* Maximum Timeout values for flags waiting loops. These timeouts are not based
00322    on accurate values, they just guarantee that the application will not remain
00323    stuck if the I2C communication is corrupted.
00324    You may modify these timeout values depending on CPU frequency and application
00325    conditions (interrupts routines ...). */
00326 #define DISCOVERY_I2C1_TIMEOUT_MAX              3000
00327 
00328 
00329 /*##################### I2C2 ###################################*/
00330 /* User can use this section to tailor I2C2 instance used and associated
00331    resources */
00332 /* Definition for I2C2 Pins */
00333 #define DISCOVERY_I2C2_SCL_PIN                  GPIO_PIN_10
00334 #define DISCOVERY_I2C2_SCL_GPIO_PORT            GPIOB
00335 #define DISCOVERY_I2C2_SDA_PIN                  GPIO_PIN_11
00336 #define DISCOVERY_I2C2_SDA_GPIO_PORT            GPIOB
00337 #define DISCOVERY_I2C2_SCL_SDA_AF               GPIO_AF4_I2C2
00338 /* Definition for I2C2 clock resources */
00339 #define DISCOVERY_I2C2                          I2C2
00340 #define DISCOVERY_I2C2_CLK_ENABLE()             __HAL_RCC_I2C2_CLK_ENABLE()
00341 #define DISCOVERY_I2C2_CLK_DISABLE()            __HAL_RCC_I2C2_CLK_DISABLE()
00342 #define DISCOVERY_I2C2_SDA_GPIO_CLK_ENABLE()    __HAL_RCC_GPIOB_CLK_ENABLE()
00343 #define DISCOVERY_I2C2_SCL_GPIO_CLK_ENABLE()    __HAL_RCC_GPIOB_CLK_ENABLE()
00344 #define DISCOVERY_I2C2_SDA_GPIO_CLK_DISABLE()   __HAL_RCC_GPIOB_CLK_DISABLE()
00345 #define DISCOVERY_I2C2_SCL_GPIO_CLK_DISABLE()   __HAL_RCC_GPIOB_CLK_DISABLE()
00346 #define DISCOVERY_I2C2_FORCE_RESET()            __HAL_RCC_I2C2_FORCE_RESET()
00347 #define DISCOVERY_I2C2_RELEASE_RESET()          __HAL_RCC_I2C2_RELEASE_RESET()
00348 
00349 /* Definition for I2C2's NVIC */
00350 #define DISCOVERY_I2C2_EV_IRQn                  I2C2_EV_IRQn
00351 #define DISCOVERY_I2C2_ER_IRQn                  I2C2_ER_IRQn
00352 
00353 /* I2C TIMING Register define when I2C clock source is SYSCLK */
00354 /* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 80 MHz */
00355 /* Set 0x90112626 value to reach 100 KHz speed (Rise time = 640ns, Fall time = 20ns) */
00356 #ifndef DISCOVERY_I2C2_TIMING
00357 #define DISCOVERY_I2C2_TIMING                  0x90112626
00358 #endif /* DISCOVERY_I2C2_TIMING */
00359 
00360 /* I2C clock speed configuration (in Hz)
00361    WARNING:
00362    Make sure that this define is not already declared in other files (ie.
00363    stm324xg_discovery.h file). It can be used in parallel by other modules. */
00364 #ifndef BSP_I2C_SPEED
00365 #define BSP_I2C_SPEED                              100000
00366 #endif /* BSP_I2C_SPEED */
00367 
00368 #define IDD_I2C_ADDRESS                         ((uint16_t) 0x84)
00369 
00370 /* Maximum Timeout values for flags waiting loops. These timeouts are not based
00371    on accurate values, they just guarantee that the application will not remain
00372    stuck if the I2C communication is corrupted.
00373    You may modify these timeout values depending on CPU frequency and application
00374    conditions (interrupts routines ...). */
00375 #define DISCOVERY_I2C2_TIMEOUT_MAX              3000
00376 #endif /* HAL_I2C_MODULE_ENABLED */
00377 
00378 /*##################### Accelerometer ##########################*/
00379 /**
00380   * @brief  Accelerometer Chip Select macro definition
00381   */
00382 #define ACCELERO_CS_LOW()                       HAL_GPIO_WritePin(ACCELERO_CS_GPIO_PORT, ACCELERO_CS_PIN, GPIO_PIN_RESET)
00383 #define ACCELERO_CS_HIGH()                      HAL_GPIO_WritePin(ACCELERO_CS_GPIO_PORT, ACCELERO_CS_PIN, GPIO_PIN_SET)
00384 
00385 /**
00386   * @brief  Accelerometer SPI Interface pins
00387   */
00388 #define ACCELERO_CS_GPIO_PORT                   GPIOE                       /* GPIOE */
00389 #define ACCELERO_CS_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOE_CLK_ENABLE()
00390 #define ACCELERO_CS_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOE_CLK_DISABLE()
00391 #define ACCELERO_CS_PIN                         GPIO_PIN_0                  /* PE.00 */
00392 
00393 /**
00394   * @brief  Accelerometer Interrupt pins
00395   */
00396 #define ACCELERO_XLINT_GPIO_PORT                  GPIOE                       /* GPIOE */
00397 #define ACCELERO_XLINT_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOE_CLK_ENABLE()
00398 #define ACCELERO_XLINT_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOE_CLK_DISABLE()
00399 #define ACCELERO_XLINT_PIN                       GPIO_PIN_1                  /* PE.01 */
00400 #define ACCELERO_XLINT_EXTI_IRQn                 EXTI1_IRQn
00401 
00402 /*##################### Magnetometer ##########################*/
00403 /**
00404   * @brief  Magnetometer Chip Select macro definition
00405   */
00406 #define MAGNETO_CS_LOW()                        HAL_GPIO_WritePin(MAGNETO_CS_GPIO_PORT, MAGNETO_CS_PIN, GPIO_PIN_RESET)
00407 #define MAGNETO_CS_HIGH()                       HAL_GPIO_WritePin(MAGNETO_CS_GPIO_PORT, MAGNETO_CS_PIN, GPIO_PIN_SET)
00408 
00409 /**
00410   * @brief  Magnetometer SPI Interface pins
00411   */
00412 #define MAGNETO_CS_GPIO_PORT                    GPIOC                       /* GPIOC */
00413 #define MAGNETO_CS_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOC_CLK_ENABLE()
00414 #define MAGNETO_CS_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOC_CLK_DISABLE()
00415 #define MAGNETO_CS_PIN                          GPIO_PIN_0                  /* PC.00 */
00416 
00417 
00418 /**
00419   * @brief  Magnetometer Interrupt pins
00420   */
00421 #define MAGNETO_INT_GPIO_PORT                   GPIOC                       /* GPIOC */
00422 #define MAGNETO_INT_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOC_CLK_ENABLE()
00423 #define MAGNETO_INT_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOC_CLK_DISABLE()
00424 #define MAGNETO_INT1_PIN                        GPIO_PIN_1                  /* PC.01 */
00425 #define MAGNETO_INT1_EXTI_IRQn                  EXTI1_IRQn
00426 
00427 #define MAGNETO_DRDY_GPIO_PORT                   GPIOC                       /* GPIOC */
00428 #define MAGNETO_DRDY_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOC_CLK_ENABLE()
00429 #define MAGNETO_DRDY_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOC_CLK_DISABLE()
00430 #define MAGNETO_DRDY_PIN                        GPIO_PIN_2                  /* PC.01 */
00431 
00432 
00433 /*##################### Audio Codec ##########################*/
00434 /**
00435   * @brief  Audio codec chip reset definition
00436   */
00437 /* Audio codec power on/off macro definition */
00438 #define CODEC_AUDIO_POWER_OFF()      HAL_GPIO_WritePin(AUDIO_RESET_GPIO, AUDIO_RESET_PIN, GPIO_PIN_RESET)
00439 #define CODEC_AUDIO_POWER_ON()       HAL_GPIO_WritePin(AUDIO_RESET_GPIO, AUDIO_RESET_PIN, GPIO_PIN_SET)
00440 
00441 /* Audio Reset Pin definition */
00442 #define AUDIO_RESET_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOE_CLK_ENABLE()
00443 #define AUDIO_RESET_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOE_CLK_DISABLE()
00444 #define AUDIO_RESET_PIN                         GPIO_PIN_3
00445 #define AUDIO_RESET_GPIO                        GPIOE
00446 
00447 /*##################### Gyroscope ##########################*/
00448 /**
00449   * @brief  Gyroscope Chip Select macro definition
00450   */
00451 #define GYRO_CS_LOW()                           HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_RESET)
00452 #define GYRO_CS_HIGH()                          HAL_GPIO_WritePin(GYRO_CS_GPIO_PORT, GYRO_CS_PIN, GPIO_PIN_SET)
00453 
00454 /**
00455   * @brief  Gyroscope SPI Interface pins
00456   */
00457 #define GYRO_CS_GPIO_PORT                       GPIOD                       /* GPIOD */
00458 #define GYRO_CS_GPIO_CLK_ENABLE()               __HAL_RCC_GPIOD_CLK_ENABLE()
00459 #define GYRO_CS_GPIO_CLK_DISABLE()              __HAL_RCC_GPIOD_CLK_DISABLE()
00460 #define GYRO_CS_PIN                             GPIO_PIN_7                  /* PD.07 */
00461 
00462 /**
00463   * @brief  Gyroscope Interrupt pins
00464   */
00465 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
00466 #define GYRO_INT1_GPIO_PORT                     GPIOD                       /* GPIOD */
00467 #define GYRO_INT1_GPIO_CLK_ENABLE()             __HAL_RCC_GPIOD_CLK_ENABLE()
00468 #define GYRO_INT1_GPIO_CLK_DISABLE()            __HAL_RCC_GPIOD_CLK_DISABLE()
00469 #define GYRO_INT1_PIN                           GPIO_PIN_2                  /* PD.02 */
00470 #define GYRO_INT1_EXTI_IRQn                     EXTI2_IRQn
00471 #define GYRO_INT2_GPIO_PORT                     GPIOB                       /* GPIOB */
00472 #define GYRO_INT2_GPIO_CLK_ENABLE()             __HAL_RCC_GPIOB_CLK_ENABLE()
00473 #define GYRO_INT2_GPIO_CLK_DISABLE()            __HAL_RCC_GPIOB_CLK_DISABLE()
00474 #define GYRO_INT2_PIN                           GPIO_PIN_8                  /* PB.08 */
00475 #define GYRO_INT2_EXTI_IRQn                     EXTI9_5_IRQn
00476 #elif defined (USE_STM32L476G_DISCO_REVA)
00477 #define GYRO_INT1_GPIO_PORT                     GPIOB                       /* GPIOB */
00478 #define GYRO_INT1_GPIO_CLK_ENABLE()             __HAL_RCC_GPIOB_CLK_ENABLE()
00479 #define GYRO_INT1_GPIO_CLK_DISABLE()            __HAL_RCC_GPIOB_CLK_DISABLE()
00480 #define GYRO_INT1_PIN                           GPIO_PIN_6                  /* PB.06 */
00481 #define GYRO_INT1_EXTI_IRQn                     EXTI9_5_IRQn
00482 #define GYRO_INT2_GPIO_PORT                     GPIOB                       /* GPIOB */
00483 #define GYRO_INT2_GPIO_CLK_ENABLE()             __HAL_RCC_GPIOB_CLK_ENABLE()
00484 #define GYRO_INT2_GPIO_CLK_DISABLE()            __HAL_RCC_GPIOB_CLK_DISABLE()
00485 #define GYRO_INT2_PIN                           GPIO_PIN_7                  /* PB.07 */
00486 #define GYRO_INT2_EXTI_IRQn                     EXTI9_5_IRQn
00487 #endif
00488 
00489 /*##################### Idd ##########################*/
00490 /**
00491   * @brief  Idd current measurement interface pins
00492   */
00493 #define IDD_INT_GPIO_PORT                       GPIOC                       /* GPIOC */
00494 #define IDD_INT_GPIO_CLK_ENABLE()               __HAL_RCC_GPIOC_CLK_ENABLE()
00495 #define IDD_INT_GPIO_CLK_DISABLE()              __HAL_RCC_GPIOC_CLK_DISABLE()
00496 #define IDD_INT_PIN                             GPIO_PIN_13                  /* PC.13 */
00497 #define IDD_INT_EXTI_IRQn                       EXTI15_10_IRQn
00498 
00499 #define IDD_WAKEUP_GPIO_PORT                    GPIOA                       /* GPIOA */
00500 #define IDD_WAKEUP_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOA_CLK_ENABLE()
00501 #define IDD_WAKEUP_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOA_CLK_DISABLE()
00502 #define IDD_WAKEUP_PIN                          GPIO_PIN_4                  /* PA.04 */
00503 
00504 /**
00505   * @}
00506   */
00507 
00508 /**
00509   * @}
00510   */
00511 
00512 
00513 /** @defgroup STM32L476G_DISCOVERY_Exported_Functions Exported Functions
00514   * @{
00515   */
00516 uint32_t                BSP_GetVersion(void);
00517 SupplyMode_TypeDef      BSP_SupplyModeDetection(void);
00518 void                    BSP_LED_Init(Led_TypeDef Led);
00519 void                    BSP_LED_DeInit(Led_TypeDef Led);
00520 void                    BSP_LED_On(Led_TypeDef Led);
00521 void                    BSP_LED_Off(Led_TypeDef Led);
00522 void                    BSP_LED_Toggle(Led_TypeDef Led);
00523 uint8_t                 BSP_JOY_Init(JOYMode_TypeDef Joy_Mode);
00524 void                    BSP_JOY_DeInit(void);
00525 JOYState_TypeDef        BSP_JOY_GetState(void);
00526 
00527 /**
00528   * @}
00529   */
00530 
00531 /**
00532   * @}
00533   */
00534 
00535 /**
00536   * @}
00537   */
00538 
00539 /**
00540   * @}
00541   */
00542 
00543 #ifdef __cplusplus
00544 }
00545 #endif
00546 
00547 #endif /* __STM32L476G_DISCOVERY_H */
00548 
00549 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/