Contains the BSP driver for the DISCO_F413ZH board.

Dependents:   DISCO_F413ZH-LCD-demo DISCO_F413ZH-touch-screen-demo DISCO_F413ZH-SD-demo DISCO_F413ZH-PSRAM-demo ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stm32f413h_discovery.h Source File

stm32f413h_discovery.h

Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32f413h_discovery.h
00004   * @author  MCD Application Team
00005   * @brief   This file contains definitions for STM32F413H_DISCOVERY's LEDs,
00006   *          push-buttons and COM ports hardware resources.
00007   ******************************************************************************
00008   * @attention
00009   *
00010   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00011   *
00012   * Redistribution and use in source and binary forms, with or without modification,
00013   * are permitted provided that the following conditions are met:
00014   *   1. Redistributions of source code must retain the above copyright notice,
00015   *      this list of conditions and the following disclaimer.
00016   *   2. Redistributions in binary form must reproduce the above copyright notice,
00017   *      this list of conditions and the following disclaimer in the documentation
00018   *      and/or other materials provided with the distribution.
00019   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00020   *      may be used to endorse or promote products derived from this software
00021   *      without specific prior written permission.
00022   *
00023   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00024   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00025   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00026   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00027   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00028   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00029   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00030   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00031   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00032   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033   *
00034   ******************************************************************************
00035   */ 
00036 
00037 /* Define to prevent recursive inclusion -------------------------------------*/
00038 #ifndef __STM32F413H_DISCOVERY_H
00039 #define __STM32F413H_DISCOVERY_H
00040 
00041 #ifdef __cplusplus
00042  extern "C" {
00043 #endif
00044 
00045 /* Includes ------------------------------------------------------------------*/
00046 #include "stm32f4xx_hal.h"
00047    
00048 /** @addtogroup BSP
00049   * @{
00050   */
00051 
00052 /** @addtogroup STM32F413H_DISCOVERY
00053   * @{
00054   */
00055       
00056 /** @addtogroup STM32F413H_DISCOVERY_LOW_LEVEL
00057   * @{
00058   */ 
00059 
00060 /** @defgroup STM32F413H_DISCOVERY_LOW_LEVEL_Exported_Types STM32F413H DISCOVERY Low Level Exported Types
00061   * @{
00062   */
00063 typedef enum 
00064 {
00065   DISCO_LED3 = 0,                 //Patch for mbed
00066   LED_GREEN = DISCO_LED3,         //Patch for mbed
00067   DISCO_LED4 = 1,                 //Patch for mbed
00068   DISCO_LED_RED = DISCO_LED4,     //Patch for mbed
00069 }Led_TypeDef;
00070 
00071 
00072 typedef enum 
00073 {  
00074   BUTTON_WAKEUP = 0
00075 }Button_TypeDef;
00076 
00077 typedef enum 
00078 {  
00079   BUTTON_MODE_GPIO = 0,
00080   BUTTON_MODE_EXTI = 1
00081 }ButtonMode_TypeDef;
00082 
00083 typedef enum 
00084 {
00085   COM1 = 0,
00086 }COM_TypeDef;
00087 /**
00088   * @}
00089   */ 
00090 
00091 /** @defgroup STM32F413H_DISCOVERY_LOW_LEVEL_Exported_Constants STM32F413H DISCOVERY Low Level Exported Constants
00092   * @{
00093   */ 
00094 
00095 /** 
00096   * @brief  Define for STM32F413H_DISCOVERY board
00097   */ 
00098 #if !defined (USE_STM32F413H_DISCOVERY)
00099  #define USE_STM32F413H_DISCOVERY
00100 #endif
00101 
00102 /** @addtogroup STM32F413H_DISCOVERY_LOW_LEVEL_LED STM32F413H DISCOVERY Low Level Led
00103   * @{
00104   */
00105 #define LEDn                             ((uint8_t)2)
00106 
00107 #define LED4_GPIO_PORT                   GPIOE
00108 #define LED4_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOE_CLK_ENABLE()
00109 #define LED4_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOE_CLK_DISABLE()
00110 
00111 #define LED3_GPIO_PORT                   GPIOC
00112 #define LED3_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOC_CLK_ENABLE()
00113 #define LED3_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOC_CLK_DISABLE()
00114 
00115 #define LED4_PIN                         GPIO_PIN_3
00116 #define LED3_PIN                         GPIO_PIN_5
00117 
00118 #define LEDx_GPIO_CLK_ENABLE(__INDEX__)  do{if((__INDEX__) == 0) LED3_GPIO_CLK_ENABLE(); else \
00119                                             if((__INDEX__) == 1) LED4_GPIO_CLK_ENABLE(); \
00120                                             }while(0)
00121 
00122 #define LEDx_GPIO_CLK_DISABLE(__INDEX__)  do{if((__INDEX__) == 0) LED3_GPIO_CLK_DISABLE(); else \
00123                                              if((__INDEX__) == 1) LED4_GPIO_CLK_DISABLE(); \
00124                                              }while(0)
00125 /**
00126   * @}
00127   */ 
00128   
00129 /** @addtogroup STM32F413H_DISCOVERY_LOW_LEVEL_BUTTON STM32F413H DISCOVERY Low Level Button
00130   * @{
00131   */ 
00132 /* Only one User/Wakeup button */
00133 #define BUTTONn                             ((uint8_t)1)
00134 
00135 /**
00136   * @brief Wakeup push-button
00137   */
00138 #define WAKEUP_BUTTON_PIN                   GPIO_PIN_0
00139 #define WAKEUP_BUTTON_GPIO_PORT             GPIOA
00140 #define WAKEUP_BUTTON_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOA_CLK_ENABLE()
00141 #define WAKEUP_BUTTON_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOA_CLK_DISABLE()
00142 #define WAKEUP_BUTTON_EXTI_IRQn             EXTI0_IRQn
00143 
00144 /**
00145   * @}
00146   */ 
00147 
00148 /** @addtogroup STM32F413H_DISCOVERY_LOW_LEVEL_SIGNAL
00149   * @{
00150   */
00151 /**
00152   * @brief SD-detect signal
00153   */
00154 #define SD_DETECT_PIN                        GPIO_PIN_11
00155 #define SD_DETECT_GPIO_PORT                  GPIOF
00156 #define SD_DETECT_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOF_CLK_ENABLE()
00157 #define SD_DETECT_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOF_CLK_DISABLE()
00158 #define SD_DETECT_EXTI_IRQn                  EXTI15_10_IRQn
00159 
00160 
00161 /**
00162   * @brief TS INT pin
00163   */
00164 #define TS_INT_PIN                        GPIO_PIN_1
00165 #define TS_INT_GPIO_PORT                  GPIOC
00166 #define TS_INT_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOC_CLK_ENABLE()
00167 #define TS_INT_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOC_CLK_DISABLE()
00168 #define TS_INT_EXTI_IRQn                  EXTI1_IRQn
00169 
00170 /**
00171   * @brief TS RST pin
00172   */
00173 #define TS_RESET_PIN                        GPIO_PIN_13
00174 #define TS_RESET_GPIO_PORT                  GPIOB
00175 #define TS_RESET_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOB_CLK_ENABLE()
00176 #define TS_RESET_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOB_CLK_DISABLE()
00177 #define TS_RESET_EXTI_IRQn                  EXTI15_10_IRQn
00178                                                  
00179 /**
00180   * @}
00181   */
00182 
00183 /** @addtogroup STM32F413H_DISCOVERY_LOW_LEVEL_COM STM32F413H DISCOVERY Low Level COM
00184   * @{
00185   */
00186 #define COMn                              ((uint8_t)1)
00187 
00188 /**
00189  * @brief Definition for COM port1, connected to USART6
00190  */ 
00191 #define DISCOVERY_COM1                          USART6
00192 #define DISCOVERY_COM1_CLK_ENABLE()             __HAL_RCC_USART6_CLK_ENABLE()
00193 #define DISCOVERY_COM1_CLK_DISABLE()            __HAL_RCC_USART6_CLK_DISABLE()
00194 
00195 #define DISCOVERY_COM1_TX_PIN                   GPIO_PIN_14
00196 #define DISCOVERY_COM1_TX_GPIO_PORT             GPIOG
00197 #define DISCOVERY_COM1_TX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOG_CLK_ENABLE()   
00198 #define DISCOVERY_COM1_TX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOG_CLK_DISABLE()  
00199 #define DISCOVERY_COM1_TX_AF                    GPIO_AF8_USART6
00200 
00201 #define DISCOVERY_COM1_RX_PIN                   GPIO_PIN_9
00202 #define DISCOVERY_COM1_RX_GPIO_PORT             GPIOG
00203 #define DISCOVERY_COM1_RX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOG_CLK_ENABLE()   
00204 #define DISCOVERY_COM1_RX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOG_CLK_DISABLE()  
00205 #define DISCOVERY_COM1_RX_AF                    GPIO_AF8_USART6
00206 
00207 #define DISCOVERY_COM1_IRQn                     USART6_IRQn
00208 
00209 #define DISCOVERY_COMx_CLK_ENABLE(__INDEX__)            do { if((__INDEX__) == COM1) {DISCOVERY_COM1_CLK_ENABLE();} } while(0)
00210 #define DISCOVERY_COMx_CLK_DISABLE(__INDEX__)           (((__INDEX__) == 0) ? DISCOVERY_COM1_CLK_DISABLE() : 0)
00211 
00212 #define DISCOVERY_COMx_TX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) {DISCOVERY_COM1_TX_GPIO_CLK_ENABLE();} } while(0)
00213 #define DISCOVERY_COMx_TX_GPIO_CLK_DISABLE(__INDEX__)   (((__INDEX__) == 0) ? DISCOVERY_COM1_TX_GPIO_CLK_DISABLE() : 0)
00214 
00215 #define DISCOVERY_COMx_RX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) {DISCOVERY_COM1_RX_GPIO_CLK_ENABLE();} } while(0)
00216 #define DISCOVERY_COMx_RX_GPIO_CLK_DISABLE(__INDEX__)   (((__INDEX__) == 0) ? DISCOVERY_COM1_RX_GPIO_CLK_DISABLE() : 0)
00217 
00218 /* Exported constant IO ------------------------------------------------------*/
00219 
00220 #define AUDIO_I2C_ADDRESS                ((uint16_t)0x34)
00221 #define EEPROM_I2C_ADDRESS_A01           ((uint16_t)0xA0)
00222 #define EEPROM_I2C_ADDRESS_A02           ((uint16_t)0xA6)  
00223 #define TS_I2C_ADDRESS                   ((uint16_t)0x70)
00224 
00225 /* User can use this section to tailor I2Cx/I2Cx instance used and associated 
00226    resources */
00227 /* Definition for AUDIO I2Cx resources */
00228 #define DISCOVERY_AUDIO_I2Cx                             FMPI2C1
00229 #define DISCOVERY_AUDIO_I2Cx_CLK_ENABLE()                __HAL_RCC_FMPI2C1_CLK_ENABLE()
00230 #define DISCOVERY_AUDIO_DMAx_CLK_ENABLE()                __HAL_RCC_DMA1_CLK_ENABLE()
00231 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOC_CLK_ENABLE()
00232 
00233 #define DISCOVERY_AUDIO_I2Cx_FORCE_RESET()               __HAL_RCC_FMPI2C1_FORCE_RESET()
00234 #define DISCOVERY_AUDIO_I2Cx_RELEASE_RESET()             __HAL_RCC_FMPI2C1_RELEASE_RESET()
00235 
00236 /* Definition for I2Cx Pins */
00237 #define DISCOVERY_AUDIO_I2Cx_SCL_PIN                     GPIO_PIN_6
00238 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_GPIO_PORT           GPIOC
00239 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_AF                  GPIO_AF4_FMPI2C1
00240 #define DISCOVERY_AUDIO_I2Cx_SDA_PIN                     GPIO_PIN_7
00241 
00242 /* I2C interrupt requests */
00243 #define DISCOVERY_AUDIO_I2Cx_EV_IRQn                     FMPI2C1_EV_IRQn
00244 #define DISCOVERY_AUDIO_I2Cx_ER_IRQn                     FMPI2C1_ER_IRQn
00245 
00246 /* I2C clock speed configuration (in Hz)
00247   WARNING:
00248    Make sure that this define is not already declared in other files.
00249    It can be used in parallel by other modules. */
00250 #ifndef DISCOVERY_I2C_SPEED
00251  #define DISCOVERY_I2C_SPEED                             100000
00252 #endif /* DISCOVERY_I2C_SPEED */
00253 
00254 #ifndef DISCOVERY_I2Cx_TIMING  
00255 #define DISCOVERY_I2Cx_TIMING                     ((uint32_t)0x00901954)
00256 #endif /* DISCOVERY_I2Cx_TIMING */ 
00257 /**
00258   * @}
00259   */
00260 
00261 /**
00262   * @}
00263   */
00264 
00265 /** @defgroup STM32F413H_DISCOVERY_LOW_LEVEL_Exported_Functions STM32F413H DISCOVERY Low Level Exported Functions
00266   * @{
00267   */
00268 uint32_t         BSP_GetVersion(void);  
00269 void             BSP_LED_Init(Led_TypeDef Led);
00270 void             BSP_LED_DeInit(Led_TypeDef Led);
00271 void             BSP_LED_On(Led_TypeDef Led);
00272 void             BSP_LED_Off(Led_TypeDef Led);
00273 void             BSP_LED_Toggle(Led_TypeDef Led);
00274 void             BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
00275 void             BSP_PB_DeInit(Button_TypeDef Button);
00276 uint32_t         BSP_PB_GetState(Button_TypeDef Button);
00277 void             BSP_COM_Init(COM_TypeDef COM, UART_HandleTypeDef *husart);
00278 void             BSP_COM_DeInit(COM_TypeDef COM, UART_HandleTypeDef *huart);
00279 
00280 /**
00281   * @}
00282   */
00283 
00284 /**
00285   * @}
00286   */ 
00287 
00288 /**
00289   * @}
00290   */ 
00291 
00292 /**
00293   * @}
00294   */
00295 
00296 #ifdef __cplusplus
00297 }
00298 #endif
00299 
00300 #endif /* __STM32F413H_DISCOVERY_H */
00301 
00302 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/