Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
stm32l476g_discovery.h
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>© 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****/
Generated on Wed Aug 17 2022 15:47:40 by
1.7.2