STM32Cube BSP FW for STM32F769I-Discovery
Dependents: mbed-os-example-blinky-5 DISCO-F769NI_TOUCHSCREEN_demo_custom_1 Datarecorder2 DISCO-F769NI_TOUCHSCREEN_demo ... more
stm32f769i_discovery.h
00001 /** 00002 ****************************************************************************** 00003 * @file stm32f769i_discovery.h 00004 * @author MCD Application Team 00005 * @brief This file contains definitions for STM32F769I-Discovery LEDs, 00006 * push-buttons hardware resources. 00007 ****************************************************************************** 00008 * @attention 00009 * 00010 * <h2><center>© 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 __STM32F769I_DISCOVERY_H 00039 #define __STM32F769I_DISCOVERY_H 00040 00041 #ifdef __cplusplus 00042 extern "C" { 00043 #endif 00044 00045 00046 /* Includes ------------------------------------------------------------------*/ 00047 #include "stm32f7xx_hal.h" 00048 00049 /** @addtogroup BSP 00050 * @{ 00051 */ 00052 00053 /** @addtogroup STM32F769I_DISCOVERY 00054 * @{ 00055 */ 00056 00057 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL STM32F769I-Discovery LOW LEVEL 00058 * @{ 00059 */ 00060 00061 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Types STM32F769I Discovery Low Level Exported Types 00062 * @{ 00063 */ 00064 00065 /** 00066 * @brief Define for STM32F769I_DISCOVERY board 00067 */ 00068 #if !defined (USE_STM32F769I_DISCO) 00069 #define USE_STM32F769I_DISCO 00070 #endif 00071 00072 /** @brief Led_TypeDef 00073 * STM32F769I_DISCOVERY board leds definitions. 00074 */ 00075 typedef enum 00076 { 00077 DISCO_LED1 = 0, // patch for MBED 00078 LED_RED = DISCO_LED1, // patch for MBED 00079 DISCO_LED2 = 1, // patch for MBED 00080 LED_GREEN = DISCO_LED2 // patch for MBED 00081 } Led_TypeDef; 00082 00083 /** @brief Button_TypeDef 00084 * STM32F769I_DISCOVERY board Buttons definitions. 00085 */ 00086 typedef enum 00087 { 00088 BUTTON_WAKEUP = 0, 00089 } Button_TypeDef; 00090 00091 #define BUTTON_USER BUTTON_WAKEUP 00092 00093 /** @brief ButtonMode_TypeDef 00094 * STM32F769I_DISCOVERY board Buttons Modes definitions. 00095 */ 00096 typedef enum 00097 { 00098 BUTTON_MODE_GPIO = 0, 00099 BUTTON_MODE_EXTI = 1 00100 00101 } ButtonMode_TypeDef; 00102 00103 /** @addtogroup Exported_types 00104 * @{ 00105 */ 00106 typedef enum 00107 { 00108 PB_SET = 0, 00109 PB_RESET = !PB_SET 00110 } ButtonValue_TypeDef; 00111 00112 00113 /** @brief DISCO_Status_TypeDef 00114 * STM32F769I_DISCO board Status return possible values. 00115 */ 00116 typedef enum 00117 { 00118 DISCO_OK = 0, 00119 DISCO_ERROR = 1 00120 00121 } DISCO_Status_TypeDef; 00122 00123 /** 00124 * @} 00125 */ 00126 00127 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Constants STM32F769I Discovery Low Level Exported Constants 00128 * @{ 00129 */ 00130 00131 00132 /** @addtogroup STM32F769I_DISCOVERY_LOW_LEVEL_LED STM32F769I Discovery Low Level Led 00133 * @{ 00134 */ 00135 /* Always four leds for all revisions of Discovery boards */ 00136 #define LEDn ((uint8_t)2) 00137 00138 00139 /* 2 Leds are connected to MCU directly on PJ13 and PJ5 */ 00140 #define LED1_GPIO_PORT ((GPIO_TypeDef*)GPIOJ) 00141 #define LED2_GPIO_PORT ((GPIO_TypeDef*)GPIOJ) 00142 00143 #define LEDx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOJ_CLK_ENABLE() 00144 #define LEDx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOJ_CLK_DISABLE() 00145 00146 #define LED1_PIN ((uint32_t)GPIO_PIN_13) 00147 #define LED2_PIN ((uint32_t)GPIO_PIN_5) 00148 00149 /** 00150 * @} 00151 */ 00152 00153 /** @addtogroup STM32F769I_DISCOVERY_LOW_LEVEL_BUTTON STM32F769I Discovery Low Level Button 00154 * @{ 00155 */ 00156 /* Only one User/Wakeup button */ 00157 #define BUTTONn ((uint8_t)1) 00158 00159 /** 00160 * @brief Wakeup push-button 00161 */ 00162 #define WAKEUP_BUTTON_PIN GPIO_PIN_0 00163 #define WAKEUP_BUTTON_GPIO_PORT GPIOA 00164 #define WAKEUP_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00165 #define WAKEUP_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE() 00166 #define WAKEUP_BUTTON_EXTI_IRQn EXTI0_IRQn 00167 00168 /* Define the USER button as an alias of the Wakeup button */ 00169 #define USER_BUTTON_PIN WAKEUP_BUTTON_PIN 00170 #define USER_BUTTON_GPIO_PORT WAKEUP_BUTTON_GPIO_PORT 00171 #define USER_BUTTON_GPIO_CLK_ENABLE() WAKEUP_BUTTON_GPIO_CLK_ENABLE() 00172 #define USER_BUTTON_GPIO_CLK_DISABLE() WAKEUP_BUTTON_GPIO_CLK_DISABLE() 00173 #define USER_BUTTON_EXTI_IRQn WAKEUP_BUTTON_EXTI_IRQn 00174 00175 #define BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() 00176 00177 /** 00178 * @} 00179 */ 00180 00181 /** 00182 * @brief USB OTG HS Over Current signal 00183 */ 00184 #define OTG_HS_OVER_CURRENT_PIN GPIO_PIN_4 00185 #define OTG_HS_OVER_CURRENT_PORT GPIOD 00186 #define OTG_HS_OVER_CURRENT_PORT_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE() 00187 00188 /** 00189 * @brief SD-detect signal 00190 */ 00191 #define SD_DETECT_PIN ((uint32_t)GPIO_PIN_15) 00192 #define SD_DETECT_GPIO_PORT ((GPIO_TypeDef*)GPIOI) 00193 #define SD_DETECT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOI_CLK_ENABLE() 00194 #define SD_DETECT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOI_CLK_DISABLE() 00195 #define SD_DETECT_EXTI_IRQn EXTI15_10_IRQn 00196 00197 /** 00198 * @brief Touch screen interrupt signal 00199 */ 00200 #define TS_INT_PIN ((uint32_t)GPIO_PIN_13) 00201 #define TS_INT_GPIO_PORT ((GPIO_TypeDef*)GPIOI) 00202 #define TS_INT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOI_CLK_ENABLE() 00203 #define TS_INT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOI_CLK_DISABLE() 00204 #define TS_INT_EXTI_IRQn EXTI15_10_IRQn 00205 00206 /** 00207 * @brief TouchScreen FT6206 Slave I2C address 1 00208 */ 00209 #define TS_I2C_ADDRESS ((uint16_t)0x54) 00210 00211 /** 00212 * @brief TouchScreen FT6336G Slave I2C address 2 00213 */ 00214 #define TS_I2C_ADDRESS_A02 ((uint16_t)0x70) 00215 00216 /** 00217 * @brief LCD DSI Slave I2C address 1 00218 */ 00219 #define LCD_DSI_ADDRESS TS_I2C_ADDRESS 00220 00221 /** 00222 * @brief LCD DSI Slave I2C address 2 00223 */ 00224 #define LCD_DSI_ADDRESS_A02 TS_I2C_ADDRESS_A02 00225 00226 /** 00227 * @brief Audio I2C Slave address 00228 */ 00229 #define AUDIO_I2C_ADDRESS ((uint16_t)0x34) 00230 00231 /** 00232 * @brief EEPROM I2C Slave address 1 00233 */ 00234 #define EEPROM_I2C_ADDRESS_A01 ((uint16_t)0xA0) 00235 00236 /** 00237 * @brief EEPROM I2C Slave address 2 00238 */ 00239 #define EEPROM_I2C_ADDRESS_A02 ((uint16_t)0xA6) 00240 00241 /** 00242 * @brief User can use this section to tailor I2C4/I2C4 instance used and associated 00243 * resources (audio codec). 00244 * Definition for I2C4 clock resources 00245 */ 00246 #define DISCOVERY_AUDIO_I2Cx I2C4 00247 #define DISCOVERY_AUDIO_I2Cx_CLK_ENABLE() __HAL_RCC_I2C4_CLK_ENABLE() 00248 #define DISCOVERY_AUDIO_I2Cx_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE() 00249 #define DISCOVERY_AUDIO_I2Cx_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() 00250 00251 #define DISCOVERY_AUDIO_I2Cx_FORCE_RESET() __HAL_RCC_I2C4_FORCE_RESET() 00252 #define DISCOVERY_AUDIO_I2Cx_RELEASE_RESET() __HAL_RCC_I2C4_RELEASE_RESET() 00253 00254 /** @brief Definition for I2C4 Pins 00255 */ 00256 #define DISCOVERY_AUDIO_I2Cx_SCL_PIN GPIO_PIN_12 /*!< PD12 */ 00257 #define DISCOVERY_AUDIO_I2Cx_SCL_AF GPIO_AF4_I2C4 00258 #define DISCOVERY_AUDIO_I2Cx_SCL_GPIO_PORT GPIOD 00259 #define DISCOVERY_AUDIO_I2Cx_SDA_PIN GPIO_PIN_7 /*!< PB7 */ 00260 #define DISCOVERY_AUDIO_I2Cx_SDA_AF GPIO_AF11_I2C4 00261 #define DISCOVERY_AUDIO_I2Cx_SDA_GPIO_PORT GPIOB 00262 /** @brief Definition of I2C4 interrupt requests 00263 */ 00264 #define DISCOVERY_AUDIO_I2Cx_EV_IRQn I2C4_EV_IRQn 00265 #define DISCOVERY_AUDIO_I2Cx_ER_IRQn I2C4_ER_IRQn 00266 00267 /** 00268 * @brief User can use this section to tailor I2C1/I2C1 instance used and associated 00269 * resources. 00270 * Definition for I2C1 clock resources 00271 */ 00272 #define DISCOVERY_EXT_I2Cx I2C1 00273 #define DISCOVERY_EXT_I2Cx_CLK_ENABLE() __HAL_RCC_I2C1_CLK_ENABLE() 00274 #define DISCOVERY_DMAx_CLK_ENABLE() __HAL_RCC_DMA1_CLK_ENABLE() 00275 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() 00276 00277 #define DISCOVERY_EXT_I2Cx_FORCE_RESET() __HAL_RCC_I2C1_FORCE_RESET() 00278 #define DISCOVERY_EXT_I2Cx_RELEASE_RESET() __HAL_RCC_I2C1_RELEASE_RESET() 00279 00280 /** @brief Definition for I2C1 Pins 00281 */ 00282 #define DISCOVERY_EXT_I2Cx_SCL_PIN GPIO_PIN_8 /*!< PB8 */ 00283 #define DISCOVERY_EXT_I2Cx_SCL_SDA_GPIO_PORT GPIOB 00284 #define DISCOVERY_EXT_I2Cx_SCL_SDA_AF GPIO_AF4_I2C1 00285 #define DISCOVERY_EXT_I2Cx_SDA_PIN GPIO_PIN_9 /*!< PB9 */ 00286 00287 /** @brief Definition of I2C interrupt requests 00288 */ 00289 #define DISCOVERY_EXT_I2Cx_EV_IRQn I2C1_EV_IRQn 00290 #define DISCOVERY_EXT_I2Cx_ER_IRQn I2C1_ER_IRQn 00291 00292 /* I2C TIMING Register define when I2C clock source is SYSCLK */ 00293 /* I2C TIMING is calculated from APB1 source clock = 50 MHz */ 00294 /* Due to the big MOFSET capacity for adapting the camera level the rising time is very large (>1us) */ 00295 /* 0x40912732 takes in account the big rising and aims a clock of 100khz */ 00296 #ifndef DISCOVERY_I2Cx_TIMING 00297 #define DISCOVERY_I2Cx_TIMING ((uint32_t)0x40912732) 00298 #endif /* DISCOVERY_I2Cx_TIMING */ 00299 00300 00301 /** 00302 * @} 00303 */ 00304 00305 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Macros STM32F769I Discovery Low Level Exported Macros 00306 * @{ 00307 */ 00308 /** 00309 * @} 00310 */ 00311 00312 /** @defgroup STM32F769I_DISCOVERY_LOW_LEVEL_Exported_Functions STM32F769I Discovery Low Level Exported Functions 00313 * @{ 00314 */ 00315 uint32_t BSP_GetVersion(void); 00316 void BSP_LED_Init(Led_TypeDef Led); 00317 void BSP_LED_DeInit(Led_TypeDef Led); 00318 void BSP_LED_On(Led_TypeDef Led); 00319 void BSP_LED_Off(Led_TypeDef Led); 00320 void BSP_LED_Toggle(Led_TypeDef Led); 00321 void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode); 00322 void BSP_PB_DeInit(Button_TypeDef Button); 00323 uint32_t BSP_PB_GetState(Button_TypeDef Button); 00324 00325 /** 00326 * @} 00327 */ 00328 00329 /** 00330 * @} 00331 */ 00332 00333 /** 00334 * @} 00335 */ 00336 00337 /** 00338 * @} 00339 */ 00340 00341 /** 00342 * @} 00343 */ 00344 00345 00346 #ifdef __cplusplus 00347 } 00348 #endif 00349 00350 #endif /* __STM32F769I_DISCOVERY_H */ 00351 00352 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 17:55:04 by 1.7.2