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