STM32746G-Discovery board drivers V1.0.0
Dependents: DISCO-F746NG_LCDTS_CC3000_NTP DISCO-F746NG_ROPE_WIFI F746_SpectralAnalysis_NoPhoto ecte433 ... more
stm32746g_discovery.h
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>© 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****/
Generated on Tue Jul 12 2022 13:20:42 by 1.7.2