STM32746G-Discovery board drivers V1.0.0

Dependents:   DISCO-F746NG_LCDTS_CC3000_NTP DISCO-F746NG_ROPE_WIFI F746_SpectralAnalysis_NoPhoto ecte433 ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers stm32746g_discovery.h Source File

stm32746g_discovery.h

Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32746g_discovery.h
00004   * @author  MCD Application Team
00005   * @brief   This file contains definitions for STM32746G_DISCOVERY's LEDs,
00006   *          push-buttons and COM ports hardware resources.
00007   ******************************************************************************
00008   * @attention
00009   *
00010   * <h2><center>&copy; COPYRIGHT(c) 2016 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 __STM32746G_DISCOVERY_H
00039 #define __STM32746G_DISCOVERY_H
00040 
00041 #ifdef __cplusplus
00042  extern "C" {
00043 #endif
00044 
00045 /* Includes ------------------------------------------------------------------*/
00046 #include "stm32f7xx_hal.h"
00047    
00048 /** @addtogroup BSP
00049   * @{
00050   */
00051 
00052 /** @addtogroup STM32746G_DISCOVERY
00053   * @{
00054   */
00055       
00056 /** @addtogroup STM32746G_DISCOVERY_LOW_LEVEL
00057   * @{
00058   */ 
00059 
00060 /** @defgroup STM32746G_DISCOVERY_LOW_LEVEL_Exported_Types STM32746G_DISCOVERY_LOW_LEVEL Exported Types
00061   * @{
00062   */
00063 typedef enum 
00064 {
00065   DISCO_LED1 = 0, // MBED
00066   LED_GREEN = DISCO_LED1, // MBED
00067 }Led_TypeDef;
00068 
00069 typedef enum 
00070 {  
00071   BUTTON_WAKEUP = 0,
00072   BUTTON_TAMPER = 1,
00073   BUTTON_KEY = 2
00074 }Button_TypeDef;
00075 
00076 typedef enum 
00077 {  
00078   BUTTON_MODE_GPIO = 0,
00079   BUTTON_MODE_EXTI = 1
00080 }ButtonMode_TypeDef;
00081 
00082 typedef enum 
00083 {
00084   COM1 = 0,
00085   COM2 = 1
00086 }COM_TypeDef;
00087 /**
00088   * @}
00089   */ 
00090 
00091 /** @defgroup STM32746G_DISCOVERY_LOW_LEVEL_Exported_Constants STM32746G_DISCOVERY_LOW_LEVEL Exported Constants
00092   * @{
00093   */ 
00094 
00095 /** 
00096   * @brief  Define for STM32746G_DISCOVERY board
00097   */ 
00098 #if !defined (USE_STM32746G_DISCO)
00099  #define USE_STM32746G_DISCO
00100 #endif
00101 
00102 /** @addtogroup STM32746G_DISCOVERY_LOW_LEVEL_LED
00103   * @{
00104   */
00105 
00106 #define LEDn                             ((uint8_t)1)
00107 
00108 #define LED1_GPIO_PORT                   GPIOI
00109 #define LED1_GPIO_CLK_ENABLE()           __HAL_RCC_GPIOI_CLK_ENABLE()
00110 #define LED1_GPIO_CLK_DISABLE()          __HAL_RCC_GPIOI_CLK_DISABLE()
00111 #define LED1_PIN                         GPIO_PIN_1
00112 
00113 /**
00114   * @}
00115   */
00116 
00117 /** @addtogroup STM32746G_DISCOVERY_LOW_LEVEL_BUTTON
00118   * @{
00119   */ 
00120 #define BUTTONn                             ((uint8_t)3) 
00121 
00122 /**
00123   * @brief Wakeup push-button
00124   */
00125 #define WAKEUP_BUTTON_PIN                   GPIO_PIN_11
00126 #define WAKEUP_BUTTON_GPIO_PORT             GPIOI
00127 #define WAKEUP_BUTTON_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOI_CLK_ENABLE()
00128 #define WAKEUP_BUTTON_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOI_CLK_DISABLE()
00129 #define WAKEUP_BUTTON_EXTI_IRQn             EXTI15_10_IRQn 
00130 
00131 /**
00132   * @brief Tamper push-button
00133   */
00134 #define TAMPER_BUTTON_PIN                    GPIO_PIN_11
00135 #define TAMPER_BUTTON_GPIO_PORT              GPIOI
00136 #define TAMPER_BUTTON_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOI_CLK_ENABLE()
00137 #define TAMPER_BUTTON_GPIO_CLK_DISABLE()     __HAL_RCC_GPIOI_CLK_DISABLE()
00138 #define TAMPER_BUTTON_EXTI_IRQn              EXTI15_10_IRQn
00139 
00140 /**
00141   * @brief Key push-button
00142   */
00143 #define KEY_BUTTON_PIN                       GPIO_PIN_11
00144 #define KEY_BUTTON_GPIO_PORT                 GPIOI
00145 #define KEY_BUTTON_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOI_CLK_ENABLE()
00146 #define KEY_BUTTON_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOI_CLK_DISABLE()
00147 #define KEY_BUTTON_EXTI_IRQn                 EXTI15_10_IRQn
00148 
00149 #define BUTTONx_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == 0) WAKEUP_BUTTON_GPIO_CLK_ENABLE(); else\
00150                                                    if((__INDEX__) == 1) TAMPER_BUTTON_GPIO_CLK_ENABLE(); else\
00151                                                                         KEY_BUTTON_GPIO_CLK_ENABLE(); } while(0)                                               
00152 
00153 #define BUTTONx_GPIO_CLK_DISABLE(__INDEX__)    (((__INDEX__) == 0) ? WAKEUP_BUTTON_GPIO_CLK_DISABLE() :\
00154                                                 ((__INDEX__) == 1) ? TAMPER_BUTTON_GPIO_CLK_DISABLE() : KEY_BUTTON_GPIO_CLK_DISABLE())
00155 
00156 /**
00157   * @}
00158   */
00159 
00160 /** @addtogroup STM32746G_DISCOVERY_LOW_LEVEL_SIGNAL
00161   * @{
00162   */
00163 #define SIGNALn                             ((uint8_t)1)
00164 
00165 /**
00166   * @brief SD-detect signal
00167   */
00168 #define SD_DETECT_PIN                        GPIO_PIN_13
00169 #define SD_DETECT_GPIO_PORT                  GPIOC
00170 #define SD_DETECT_GPIO_CLK_ENABLE()          __HAL_RCC_GPIOC_CLK_ENABLE()
00171 #define SD_DETECT_GPIO_CLK_DISABLE()         __HAL_RCC_GPIOC_CLK_DISABLE()
00172 #define SD_DETECT_EXTI_IRQn                  EXTI15_10_IRQn
00173 
00174 /**
00175   * @brief Touch screen interrupt signal
00176   */
00177 #define TS_INT_PIN                           GPIO_PIN_13
00178 #define TS_INT_GPIO_PORT                     GPIOI
00179 #define TS_INT_GPIO_CLK_ENABLE()             __HAL_RCC_GPIOI_CLK_ENABLE()
00180 #define TS_INT_GPIO_CLK_DISABLE()            __HAL_RCC_GPIOI_CLK_DISABLE()
00181 #define TS_INT_EXTI_IRQn                     EXTI15_10_IRQn
00182 
00183 /**
00184   * @}
00185   */ 
00186 
00187 /** @addtogroup STM32746G_DISCOVERY_LOW_LEVEL_COM
00188   * @{
00189   */
00190 #define COMn                             ((uint8_t)1)
00191 
00192 /**
00193  * @brief Definition for COM port1, connected to USART1
00194  */ 
00195 #define DISCOVERY_COM1                          USART1
00196 #define DISCOVERY_COM1_CLK_ENABLE()             __HAL_RCC_USART1_CLK_ENABLE()
00197 #define DISCOVERY_COM1_CLK_DISABLE()            __HAL_RCC_USART1_CLK_DISABLE()
00198 
00199 #define DISCOVERY_COM1_TX_PIN                   GPIO_PIN_9
00200 #define DISCOVERY_COM1_TX_GPIO_PORT             GPIOA
00201 #define DISCOVERY_COM1_TX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOA_CLK_ENABLE()
00202 #define DISCOVERY_COM1_TX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOA_CLK_DISABLE()
00203 #define DISCOVERY_COM1_TX_AF                    GPIO_AF7_USART1
00204 
00205 #define DISCOVERY_COM1_RX_PIN                   GPIO_PIN_7
00206 #define DISCOVERY_COM1_RX_GPIO_PORT             GPIOB
00207 #define DISCOVERY_COM1_RX_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOB_CLK_ENABLE()
00208 #define DISCOVERY_COM1_RX_GPIO_CLK_DISABLE()    __HAL_RCC_GPIOB_CLK_DISABLE()
00209 #define DISCOVERY_COM1_RX_AF                    GPIO_AF7_USART1
00210 
00211 #define DISCOVERY_COM1_IRQn                     USART1_IRQn
00212 
00213 #define DISCOVERY_COMx_CLK_ENABLE(__INDEX__)            do { if((__INDEX__) == COM1) DISCOVERY_COM1_CLK_ENABLE(); } while(0)
00214 #define DISCOVERY_COMx_CLK_DISABLE(__INDEX__)           (((__INDEX__) == 0) ? DISCOVERY_COM1_CLK_DISABLE() : 0)
00215 
00216 #define DISCOVERY_COMx_TX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) DISCOVERY_COM1_TX_GPIO_CLK_ENABLE(); } while(0)
00217 #define DISCOVERY_COMx_TX_GPIO_CLK_DISABLE(__INDEX__)   (((__INDEX__) == 0) ? DISCOVERY_COM1_TX_GPIO_CLK_DISABLE() : 0)
00218 
00219 #define DISCOVERY_COMx_RX_GPIO_CLK_ENABLE(__INDEX__)    do { if((__INDEX__) == COM1) DISCOVERY_COM1_RX_GPIO_CLK_ENABLE(); } while(0)
00220 #define DISCOVERY_COMx_RX_GPIO_CLK_DISABLE(__INDEX__)   (((__INDEX__) == 0) ? DISCOVERY_COM1_RX_GPIO_CLK_DISABLE() : 0)
00221 
00222 /* Exported constant IO ------------------------------------------------------*/
00223 
00224 #define LCD_I2C_ADDRESS                  ((uint16_t)0x70)
00225 #define CAMERA_I2C_ADDRESS               ((uint16_t)0x60)
00226 #define AUDIO_I2C_ADDRESS                ((uint16_t)0x34)
00227 #define EEPROM_I2C_ADDRESS_A01           ((uint16_t)0xA0)
00228 #define EEPROM_I2C_ADDRESS_A02           ((uint16_t)0xA6)
00229 #define TS_I2C_ADDRESS                   ((uint16_t)0x70)
00230 
00231 /* I2C clock speed configuration (in Hz) 
00232    WARNING: 
00233    Make sure that this define is not already declared in other files (ie. 
00234    stm32746g_discovery.h file). It can be used in parallel by other modules. */
00235 #ifndef I2C_SPEED
00236  #define I2C_SPEED                       ((uint32_t)100000)
00237 #endif /* I2C_SPEED */
00238 
00239 /* User can use this section to tailor I2Cx/I2Cx instance used and associated 
00240    resources */
00241 /* Definition for AUDIO and LCD I2Cx resources */
00242 #define DISCOVERY_AUDIO_I2Cx                             I2C3
00243 #define DISCOVERY_AUDIO_I2Cx_CLK_ENABLE()                __HAL_RCC_I2C3_CLK_ENABLE()
00244 #define DISCOVERY_AUDIO_DMAx_CLK_ENABLE()                __HAL_RCC_DMA1_CLK_ENABLE()
00245 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()   __HAL_RCC_GPIOH_CLK_ENABLE()
00246 
00247 #define DISCOVERY_AUDIO_I2Cx_FORCE_RESET()               __HAL_RCC_I2C3_FORCE_RESET()
00248 #define DISCOVERY_AUDIO_I2Cx_RELEASE_RESET()             __HAL_RCC_I2C3_RELEASE_RESET()
00249 
00250 /* Definition for I2Cx Pins */
00251 #define DISCOVERY_AUDIO_I2Cx_SCL_PIN                     GPIO_PIN_7
00252 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_GPIO_PORT           GPIOH
00253 #define DISCOVERY_AUDIO_I2Cx_SCL_SDA_AF                  GPIO_AF4_I2C3
00254 #define DISCOVERY_AUDIO_I2Cx_SDA_PIN                     GPIO_PIN_8
00255 
00256 /* I2C interrupt requests */
00257 #define DISCOVERY_AUDIO_I2Cx_EV_IRQn                     I2C3_EV_IRQn
00258 #define DISCOVERY_AUDIO_I2Cx_ER_IRQn                     I2C3_ER_IRQn
00259 
00260 /* Definition for external, camera and Arduino connector I2Cx resources */
00261 #define DISCOVERY_EXT_I2Cx                               I2C1
00262 #define DISCOVERY_EXT_I2Cx_CLK_ENABLE()                  __HAL_RCC_I2C1_CLK_ENABLE()
00263 #define DISCOVERY_EXT_DMAx_CLK_ENABLE()                  __HAL_RCC_DMA1_CLK_ENABLE()
00264 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOB_CLK_ENABLE()
00265 
00266 #define DISCOVERY_EXT_I2Cx_FORCE_RESET()                 __HAL_RCC_I2C1_FORCE_RESET()
00267 #define DISCOVERY_EXT_I2Cx_RELEASE_RESET()               __HAL_RCC_I2C1_RELEASE_RESET()
00268 
00269 /* Definition for I2Cx Pins */
00270 #define DISCOVERY_EXT_I2Cx_SCL_PIN                       GPIO_PIN_8
00271 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_PORT             GPIOB
00272 #define DISCOVERY_EXT_I2Cx_SCL_SDA_AF                    GPIO_AF4_I2C1
00273 #define DISCOVERY_EXT_I2Cx_SDA_PIN                       GPIO_PIN_9
00274 
00275 /* I2C interrupt requests */
00276 #define DISCOVERY_EXT_I2Cx_EV_IRQn                       I2C1_EV_IRQn
00277 #define DISCOVERY_EXT_I2Cx_ER_IRQn                       I2C1_ER_IRQn
00278 
00279 /* I2C TIMING Register define when I2C clock source is SYSCLK */
00280 /* I2C TIMING is calculated from APB1 source clock = 50 MHz */
00281 /* Due to the big MOFSET capacity for adapting the camera level the rising time is very large (>1us) */
00282 /* 0x40912732 takes in account the big rising and aims a clock of 100khz */
00283 #ifndef DISCOVERY_I2Cx_TIMING  
00284 #define DISCOVERY_I2Cx_TIMING                      ((uint32_t)0x40912732)  
00285 #endif /* DISCOVERY_I2Cx_TIMING */
00286 
00287 /**
00288   * @}
00289   */ 
00290 
00291 /**
00292   * @}
00293   */ 
00294   
00295 /** @defgroup STM32746G_DISCOVERY_LOW_LEVEL_Exported_Macros STM32746G_DISCOVERY_LOW_LEVEL Exported Macros
00296   * @{
00297   */  
00298 /**
00299   * @}
00300   */ 
00301 
00302 /** @addtogroup STM32746G_DISCOVERY_LOW_LEVEL_Exported_Functions
00303   * @{
00304   */
00305 uint32_t  BSP_GetVersion(void);
00306 void      BSP_LED_Init(Led_TypeDef Led);
00307 void      BSP_LED_DeInit(Led_TypeDef Led);
00308 void      BSP_LED_On(Led_TypeDef Led);
00309 void      BSP_LED_Off(Led_TypeDef Led);
00310 void      BSP_LED_Toggle(Led_TypeDef Led);
00311 void      BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
00312 void      BSP_PB_DeInit(Button_TypeDef Button);
00313 uint32_t  BSP_PB_GetState(Button_TypeDef Button);
00314 void      BSP_COM_Init(COM_TypeDef COM, UART_HandleTypeDef *husart);
00315 void      BSP_COM_DeInit(COM_TypeDef COM, UART_HandleTypeDef *huart);
00316 
00317 /**
00318   * @}
00319   */
00320 
00321 /**
00322   * @}
00323   */ 
00324 
00325 /**
00326   * @}
00327   */ 
00328 
00329 /**
00330   * @}
00331   */
00332 
00333 #ifdef __cplusplus
00334 }
00335 #endif
00336 
00337 #endif /* __STM32746G_DISCOVERY_H */
00338 
00339 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/