STM32412G-Discovery BSP User Manual: stm32412g_discovery.h Source File

STM32412G-Discovery BSP Drivers

stm32412g_discovery.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32412g_discovery.h
00004   * @author  MCD Application Team
00005    * @version V2.0.0
00006   * @date    27-January-2017
00007   * @brief   This file contains definitions for STM32412G_DISCOVERY's LEDs,
00008   *          push-buttons and COM ports hardware resources.
00009   ******************************************************************************
00010   * @attention
00011   *
00012   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00013   *
00014   * Redistribution and use in source and binary forms, with or without modification,
00015   * are permitted provided that the following conditions are met:
00016   *   1. Redistributions of source code must retain the above copyright notice,
00017   *      this list of conditions and the following disclaimer.
00018   *   2. Redistributions in binary form must reproduce the above copyright notice,
00019   *      this list of conditions and the following disclaimer in the documentation
00020   *      and/or other materials provided with the distribution.
00021   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00022   *      may be used to endorse or promote products derived from this software
00023   *      without specific prior written permission.
00024   *
00025   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00026   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00027   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00028   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00029   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00030   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00031   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00032   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00033   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00034   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00035   *
00036   ******************************************************************************
00037   */ 
00038 
00039 /* Define to prevent recursive inclusion -------------------------------------*/
00040 #ifndef __STM32412G_DISCOVERY_H
00041 #define __STM32412G_DISCOVERY_H
00042 
00043 #ifdef __cplusplus
00044  extern "C" {
00045 #endif
00046 
00047 /* Includes ------------------------------------------------------------------*/
00048 #include "stm32f4xx_hal.h"
00049    
00050 /** @addtogroup BSP
00051   * @{
00052   */
00053 
00054 /** @addtogroup STM32412G_DISCOVERY
00055   * @{
00056   */
00057       
00058 /** @addtogroup STM32412G_DISCOVERY_LOW_LEVEL
00059   * @{
00060   */ 
00061 
00062 /** @defgroup STM32412G_DISCOVERY_LOW_LEVEL_Exported_Types STM32412G DISCOVERY Low Level Exported Types
00063   * @{
00064   */
00065 typedef enum 
00066 {
00067 LED1 = 0,
00068 LED_GREEN = LED1,
00069 LED2 = 1,
00070 LED_ORANGE = LED2,
00071 LED3 = 2,
00072 LED_RED = LED3,
00073 LED4 = 3,
00074 LED_BLUE = LED4
00075 }Led_TypeDef;
00076 
00077 
00078 typedef enum 
00079 {  
00080   BUTTON_WAKEUP = 0
00081 }Button_TypeDef;
00082 
00083 typedef enum 
00084 {  
00085   BUTTON_MODE_GPIO = 0,
00086   BUTTON_MODE_EXTI = 1
00087 }ButtonMode_TypeDef;
00088 
00089 typedef enum 
00090 {  
00091   JOY_MODE_GPIO = 0,
00092   JOY_MODE_EXTI = 1
00093 }JOYMode_TypeDef;
00094 
00095 typedef enum 
00096 { 
00097   JOY_SEL   = 0,
00098   JOY_DOWN  = 1,
00099   JOY_LEFT  = 2,
00100   JOY_RIGHT = 3,
00101   JOY_UP    = 4,
00102   JOY_NONE  = 5
00103 }JOYState_TypeDef;
00104 
00105 typedef enum 
00106 {
00107   COM1 = 0,
00108   COM2 = 1
00109 }COM_TypeDef;
00110 /**
00111   * @}
00112   */ 
00113 
00114 /** @defgroup STM32412G_DISCOVERY_LOW_LEVEL_Exported_Constants STM32412G DISCOVERY Low Level Exported Constants
00115   * @{
00116   */ 
00117 
00118 /** 
00119   * @brief  Define for STM32412G_DISCOVERY board
00120   */ 
00121 #if !defined (USE_STM32412G_DISCOVERY)
00122  #define USE_STM32412G_DISCOVERY
00123 #endif
00124 
00125 /** @addtogroup STM32412G_DISCOVERY_LOW_LEVEL_LED STM32412G DISCOVERY Low Level Led
00126   * @{
00127   */
00128 #define LEDn                             ((uint8_t)4)
00129 
00130 #define LEDx_GPIO_PORT                   GPIOE
00131 #define LEDx_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOE_CLK_ENABLE()
00132 #define LEDx_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOE_CLK_DISABLE()
00133 #define LED1_PIN                         GPIO_PIN_0
00134 #define LED2_PIN                         GPIO_PIN_1
00135 #define LED3_PIN                         GPIO_PIN_2
00136 #define LED4_PIN                         GPIO_PIN_3
00137 
00138 /**
00139   * @}
00140   */ 
00141   
00142 /** @addtogroup STM32412G_DISCOVERY_LOW_LEVEL_BUTTON STM32412G DISCOVERY Low Level Button
00143   * @{
00144   */ 
00145 /* Push buttons (wakeup) mapped on joystick middle select button */
00146 #define BUTTONn                             ((uint8_t)1)
00147 
00148 /**
00149   * @brief Wakeup push-button
00150   */
00151 #define WAKEUP_BUTTON_PIN                   GPIO_PIN_0
00152 #define WAKEUP_BUTTON_GPIO_PORT             GPIOA
00153 #define WAKEUP_BUTTON_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOA_CLK_ENABLE()
00154 #define WAKEUP_BUTTON_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOA_CLK_DISABLE()
00155 #define WAKEUP_BUTTON_EXTI_IRQn             EXTI0_IRQn
00156 
00157 #define JOYn                              ((uint8_t)5)
00158 
00159 /**
00160 * @brief Joystick Left push-button
00161 */
00162 #define LEFT_JOY_PIN                      GPIO_PIN_15  /* PF.15 */
00163 #define LEFT_JOY_GPIO_PORT                GPIOF
00164 #define LEFT_JOY_GPIO_CLK_ENABLE()        __HAL_RCC_GPIOF_CLK_ENABLE()
00165 #define LEFT_JOY_GPIO_CLK_DISABLE()       __HAL_RCC_GPIOF_CLK_DISABLE()
00166 #define LEFT_JOY_EXTI_IRQn                EXTI15_10_IRQn
00167 
00168 /**
00169 * @brief Joystick Down push-button
00170 */
00171 #define DOWN_JOY_PIN                      GPIO_PIN_1  /* PG.01 */
00172 #define DOWN_JOY_GPIO_PORT                GPIOG
00173 #define DOWN_JOY_GPIO_CLK_ENABLE()        __HAL_RCC_GPIOG_CLK_ENABLE()
00174 #define DOWN_JOY_GPIO_CLK_DISABLE()       __HAL_RCC_GPIOG_CLK_DISABLE()
00175 #define DOWN_JOY_EXTI_IRQn                EXTI1_IRQn
00176 
00177 /**
00178 * @brief Joystick Up push-button
00179 */
00180 #define UP_JOY_PIN                        GPIO_PIN_0  /* PG.00 */
00181 #define UP_JOY_GPIO_PORT                  GPIOG
00182 #define UP_JOY_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOG_CLK_ENABLE()
00183 #define UP_JOY_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOG_CLK_DISABLE()
00184 #define UP_JOY_EXTI_IRQn                  EXTI0_IRQn
00185 
00186 /**
00187  * @brief Joystick Right push-button
00188  */
00189 #define RIGHT_JOY_PIN                     GPIO_PIN_14   /* PF.14 */
00190 #define RIGHT_JOY_GPIO_PORT               GPIOF
00191 #define RIGHT_JOY_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOF_CLK_ENABLE()
00192 #define RIGHT_JOY_GPIO_CLK_DISABLE()      __HAL_RCC_GPIOF_CLK_DISABLE()
00193 #define RIGHT_JOY_EXTI_IRQn               EXTI15_10_IRQn
00194 
00195 /**
00196  * @brief Joystick Selection push-button
00197  */
00198 #define SEL_JOY_PIN                       GPIO_PIN_0   /* PA.00 */
00199 #define SEL_JOY_GPIO_PORT                 GPIOA
00200 #define SEL_JOY_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOA_CLK_ENABLE()
00201 #define SEL_JOY_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOA_CLK_DISABLE()
00202 #define SEL_JOY_EXTI_IRQn                 EXTI0_IRQn
00203 
00204 #define JOYx_GPIO_CLK_ENABLE(__JOY__)     do { if((__JOY__) == JOY_SEL)   { SEL_JOY_GPIO_CLK_ENABLE();   } else \
00205                                                if((__JOY__) == JOY_DOWN)  { DOWN_JOY_GPIO_CLK_ENABLE();  } else \
00206                                                if((__JOY__) == JOY_LEFT)  { LEFT_JOY_GPIO_CLK_ENABLE();  } else \
00207                                                if((__JOY__) == JOY_RIGHT) { RIGHT_JOY_GPIO_CLK_ENABLE(); } else \
00208                                                if((__JOY__) == JOY_UP)    { UP_JOY_GPIO_CLK_ENABLE(); }  } while(0)
00209 
00210 #define JOYx_GPIO_CLK_DISABLE(__JOY__)    do { if((__JOY__) == JOY_SEL)   { SEL_JOY_GPIO_CLK_DISABLE();   } else \
00211                                                if((__JOY__) == JOY_DOWN)  { DOWN_JOY_GPIO_CLK_DISABLE();  } else \
00212                                                if((__JOY__) == JOY_LEFT)  { LEFT_JOY_GPIO_CLK_DISABLE();  } else \
00213                                                if((__JOY__) == JOY_RIGHT) { RIGHT_JOY_GPIO_CLK_DISABLE(); } else \
00214                                                if((__JOY__) == JOY_UP)    { UP_JOY_GPIO_CLK_DISABLE(); }  } while(0)
00215 
00216 #define JOY_ALL_PINS                      (RIGHT_JOY_PIN | LEFT_JOY_PIN | UP_JOY_PIN | DOWN_JOY_PIN | SEL_JOY_PIN)
00217 
00218 /**
00219   * @}
00220   */ 
00221 
00222 /** @addtogroup STM32412G_DISCOVERY_LOW_LEVEL_SIGNAL
00223   * @{
00224   */
00225 #define SIGNALn                             ((uint8_t)2)
00226 
00227 /**
00228   * @brief SD-detect signal
00229   */
00230 #define SD_DETECT_PIN                        GPIO_PIN_3
00231 #define SD_DETECT_GPIO_PORT                  GPIOD
00232 #define SD_DETECT_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOD_CLK_ENABLE()
00233 #define SD_DETECT_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOD_CLK_DISABLE()
00234 #define SD_DETECT_EXTI_IRQn                  EXTI3_IRQn
00235 
00236 
00237 /**
00238   * @brief Tamper input TAMP1
00239   */
00240 #define TAMPER_TAMP1_PIN                     GPIO_PIN_13
00241 #define TAMPER_TAMP1_GPIO_PORT               GPIOC
00242 #define TAMPER_TAMP1_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOC_CLK_ENABLE()
00243 #define TAMPER_TAMP1_GPIO_CLK_DISABLE()      __HAL_RCC_GPIOC_CLK_DISABLE()
00244 #define TAMPER_TAMP1_EXTI_IRQn               EXTI15_10_IRQn
00245 
00246 /**
00247   * @brief TS INT pin
00248   */
00249 #define TS_INT_PIN                        GPIO_PIN_5
00250 #define TS_INT_GPIO_PORT                  GPIOG
00251 #define TS_INT_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOG_CLK_ENABLE()
00252 #define TS_INT_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOG_CLK_DISABLE()
00253 #define TS_INT_EXTI_IRQn                  EXTI9_5_IRQn
00254 
00255 /**
00256   * @brief TS RST pin
00257   */
00258 #define TS_RST_PIN                        GPIO_PIN_12
00259 #define TS_RST_GPIO_PORT                  GPIOF
00260 #define TS_RST_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOF_CLK_ENABLE()
00261 #define TS_RST_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOF_CLK_DISABLE()
00262 #define TS_RST_EXTI_IRQn                  EXTI15_10_IRQn
00263                                                  
00264 /**
00265   * @}
00266   */
00267 
00268 /** @addtogroup STM32412G_DISCOVERY_LOW_LEVEL_COM STM32412G DISCOVERY Low Level COM
00269   * @{
00270   */
00271 #define COMn                              ((uint8_t)1)
00272 
00273 /**
00274  * @brief Definition for COM port1, connected to USART2
00275  */ 
00276 #define DISCOVERY_COM1                          USART2
00277 #define DISCOVERY_COM1_CLK_ENABLE()             __HAL_RCC_USART2_CLK_ENABLE()
00278 #define DISCOVERY_COM1_CLK_DISABLE()            __HAL_RCC_USART2_CLK_DISABLE()
00279 
00280 #define DISCOVERY_COM1_TX_PIN                   GPIO_PIN_2
00281 #define DISCOVERY_COM1_TX_GPIO_PORT             GPIOA
00282 #define DISCOVERY_COM1_TX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOA_CLK_ENABLE()   
00283 #define DISCOVERY_COM1_TX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOA_CLK_DISABLE()  
00284 #define DISCOVERY_COM1_TX_AF                    GPIO_AF7_USART2
00285 
00286 #define DISCOVERY_COM1_RX_PIN                   GPIO_PIN_3
00287 #define DISCOVERY_COM1_RX_GPIO_PORT             GPIOA
00288 #define DISCOVERY_COM1_RX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOA_CLK_ENABLE()   
00289 #define DISCOVERY_COM1_RX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOA_CLK_DISABLE()  
00290 #define DISCOVERY_COM1_RX_AF                    GPIO_AF7_USART2
00291 
00292 #define DISCOVERY_COM1_IRQn                     USART2_IRQn
00293 
00294 #define DISCOVERY_COMx_CLK_ENABLE(__INDEX__)            do { if((__INDEX__) == COM1) {DISCOVERY_COM1_CLK_ENABLE();} } while(0)
00295 #define DISCOVERY_COMx_CLK_DISABLE(__INDEX__)           (((__INDEX__) == 0) ? DISCOVERY_COM1_CLK_DISABLE() : 0)
00296 
00297 #define DISCOVERY_COMx_TX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) {DISCOVERY_COM1_TX_GPIO_CLK_ENABLE();} } while(0)
00298 #define DISCOVERY_COMx_TX_GPIO_CLK_DISABLE(__INDEX__)   (((__INDEX__) == 0) ? DISCOVERY_COM1_TX_GPIO_CLK_DISABLE() : 0)
00299 
00300 #define DISCOVERY_COMx_RX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) {DISCOVERY_COM1_RX_GPIO_CLK_ENABLE();} } while(0)
00301 #define DISCOVERY_COMx_RX_GPIO_CLK_DISABLE(__INDEX__)   (((__INDEX__) == 0) ? DISCOVERY_COM1_RX_GPIO_CLK_DISABLE() : 0)
00302 
00303 /**
00304   * @brief Joystick Pins definition 
00305   */ 
00306 
00307 
00308 /* Exported constant IO ------------------------------------------------------*/
00309 
00310 #define AUDIO_I2C_ADDRESS                ((uint16_t)0x34)
00311 #define EEPROM_I2C_ADDRESS_A01           ((uint16_t)0xA0)
00312 #define EEPROM_I2C_ADDRESS_A02           ((uint16_t)0xA6)  
00313 #define TS_I2C_ADDRESS                   ((uint16_t)0x70)
00314 
00315 /* User can use this section to tailor I2Cx/I2Cx instance used and associated 
00316    resources */
00317 /* Definition for AUDIO I2Cx resources */
00318 #define DISCOVERY_AUDIO_I2Cx                             I2C1
00319 #define DISCOVERY_AUDIO_I2Cx_CLK_ENABLE()                __HAL_RCC_I2C1_CLK_ENABLE()
00320 #define DISCOVERY_AUDIO_DMAx_CLK_ENABLE()                __HAL_RCC_DMA1_CLK_ENABLE()
00321 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOB_CLK_ENABLE()
00322 
00323 #define DISCOVERY_AUDIO_I2Cx_FORCE_RESET()               __HAL_RCC_I2C1_FORCE_RESET()
00324 #define DISCOVERY_AUDIO_I2Cx_RELEASE_RESET()             __HAL_RCC_I2C1_RELEASE_RESET()
00325 
00326 /* Definition for I2Cx Pins */
00327 #define DISCOVERY_AUDIO_I2Cx_SCL_PIN                     GPIO_PIN_6
00328 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_GPIO_PORT           GPIOB
00329 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_AF                  GPIO_AF4_I2C1
00330 #define DISCOVERY_AUDIO_I2Cx_SDA_PIN                     GPIO_PIN_7
00331 
00332 /* I2C interrupt requests */
00333 #define DISCOVERY_AUDIO_I2Cx_EV_IRQn                     I2C1_EV_IRQn
00334 #define DISCOVERY_AUDIO_I2Cx_ER_IRQn                     I2C1_ER_IRQn
00335 
00336 /* Definition for external, camera and Arduino connector I2Cx resources */
00337 #define DISCOVERY_EXT_I2Cx                               I2C2
00338 #define DISCOVERY_EXT_I2Cx_CLK_ENABLE()                  __HAL_RCC_I2C2_CLK_ENABLE()
00339 #define DISCOVERY_EXT_DMAx_CLK_ENABLE()                  __HAL_RCC_DMA1_CLK_ENABLE()
00340 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOB_CLK_ENABLE()
00341 
00342 #define DISCOVERY_EXT_I2Cx_FORCE_RESET()                 __HAL_RCC_I2C2_FORCE_RESET()
00343 #define DISCOVERY_EXT_I2Cx_RELEASE_RESET()               __HAL_RCC_I2C2_RELEASE_RESET()
00344 
00345 /* Definition for I2Cx Pins */
00346 #define DISCOVERY_EXT_I2Cx_SCL_PIN                       GPIO_PIN_10
00347 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_PORT             GPIOB
00348 #define DISCOVERY_EXT_I2Cx_SCL_AF                        GPIO_AF4_I2C2
00349 #define DISCOVERY_EXT_I2Cx_SDA_AF                        GPIO_AF9_I2C2
00350 #define DISCOVERY_EXT_I2Cx_SDA_PIN                       GPIO_PIN_9
00351 
00352 /* I2C interrupt requests */
00353 #define DISCOVERY_EXT_I2Cx_EV_IRQn                       I2C2_EV_IRQn
00354 #define DISCOVERY_EXT_I2Cx_ER_IRQn                       I2C2_ER_IRQn
00355 
00356 /* I2C clock speed configuration (in Hz)
00357   WARNING:
00358    Make sure that this define is not already declared in other files.
00359    It can be used in parallel by other modules. */
00360 #ifndef DISCOVERY_I2C_SPEED
00361  #define DISCOVERY_I2C_SPEED                             100000
00362 #endif /* DISCOVERY_I2C_SPEED */
00363 
00364 /**
00365   * @}
00366   */ 
00367 
00368 /**
00369   * @}
00370   */ 
00371 
00372 /** @defgroup STM32412G_DISCOVERY_LOW_LEVEL_Exported_Functions STM32412G DISCOVERY Low Level Exported Functions
00373   * @{
00374   */
00375 uint32_t         BSP_GetVersion(void);  
00376 void             BSP_LED_Init(Led_TypeDef Led);
00377 void             BSP_LED_DeInit(Led_TypeDef Led);
00378 void             BSP_LED_On(Led_TypeDef Led);
00379 void             BSP_LED_Off(Led_TypeDef Led);
00380 void             BSP_LED_Toggle(Led_TypeDef Led);
00381 void             BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
00382 void             BSP_PB_DeInit(Button_TypeDef Button);
00383 uint32_t         BSP_PB_GetState(Button_TypeDef Button);
00384 uint8_t          BSP_JOY_Init(JOYMode_TypeDef Joy_Mode);
00385 void             BSP_JOY_DeInit(void);
00386 JOYState_TypeDef BSP_JOY_GetState(void);
00387 void             BSP_COM_Init(COM_TypeDef COM, UART_HandleTypeDef *husart);
00388 void             BSP_COM_DeInit(COM_TypeDef COM, UART_HandleTypeDef *huart);
00389 
00390 /**
00391   * @}
00392   */
00393 
00394 /**
00395   * @}
00396   */ 
00397 
00398 /**
00399   * @}
00400   */ 
00401 
00402 /**
00403   * @}
00404   */
00405 
00406 #ifdef __cplusplus
00407 }
00408 #endif
00409 
00410 #endif /* __STM32412G_DISCOVERY_H */
00411 
00412 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jan 24 2017 11:28:05 for STM32412G-Discovery BSP User Manual by   doxygen 1.7.6.1