STM324xG_EVAL BSP User Manual
|
stm324xg_eval.h
Go to the documentation of this file.
00001 /** 00002 ****************************************************************************** 00003 * @file stm324xg_eval.h 00004 * @author MCD Application Team 00005 * @version V2.2.1 00006 * @date 15-January-2016 00007 * @brief This file contains definitions for STM324xG_EVAL's LEDs, 00008 * push-buttons and COM ports hardware resources. 00009 ****************************************************************************** 00010 * @attention 00011 * 00012 * <h2><center>© COPYRIGHT(c) 2016 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 __STM324xG_EVAL_H 00041 #define __STM324xG_EVAL_H 00042 00043 #ifdef __cplusplus 00044 extern "C" { 00045 #endif 00046 00047 /* Includes ------------------------------------------------------------------*/ 00048 #include "stm32f4xx_hal.h" 00049 00050 /** @addtogroup BSP 00051 * @{ 00052 */ 00053 00054 /** @addtogroup STM324xG_EVAL 00055 * @{ 00056 */ 00057 00058 /** @addtogroup STM324xG_EVAL_LOW_LEVEL 00059 * @{ 00060 */ 00061 00062 /** @defgroup STM324xG_EVAL_LOW_LEVEL_Exported_Types STM324xG EVAL LOW LEVEL Exported Types 00063 * @{ 00064 */ 00065 typedef enum 00066 { 00067 LED1 = 0, 00068 LED2 = 1, 00069 LED3 = 2, 00070 LED4 = 3 00071 }Led_TypeDef; 00072 00073 typedef enum 00074 { 00075 BUTTON_WAKEUP = 0, 00076 BUTTON_TAMPER = 1, 00077 BUTTON_KEY = 2, 00078 BUTTON_RIGHT = 3, 00079 BUTTON_LEFT = 4, 00080 BUTTON_UP = 5, 00081 BUTTON_DOWN = 6, 00082 BUTTON_SEL = 7 00083 }Button_TypeDef; 00084 00085 typedef enum 00086 { 00087 BUTTON_MODE_GPIO = 0, 00088 BUTTON_MODE_EXTI = 1 00089 }ButtonMode_TypeDef; 00090 00091 typedef enum 00092 { 00093 JOY_MODE_GPIO = 0, 00094 JOY_MODE_EXTI = 1 00095 }JOYMode_TypeDef; 00096 00097 typedef enum 00098 { 00099 JOY_NONE = 0, 00100 JOY_SEL = 1, 00101 JOY_DOWN = 2, 00102 JOY_LEFT = 3, 00103 JOY_RIGHT = 4, 00104 JOY_UP = 5 00105 }JOYState_TypeDef; 00106 00107 typedef enum 00108 { 00109 COM1 = 0, 00110 COM2 = 1 00111 }COM_TypeDef; 00112 /** 00113 * @} 00114 */ 00115 00116 /** @defgroup STM324xG_EVAL_LOW_LEVEL_Exported_Constants STM324xG EVAL LOW LEVEL Exported Constants 00117 * @{ 00118 */ 00119 00120 /** 00121 * @brief Define for STM324xG_EVAL board 00122 */ 00123 #if !defined (USE_STM324xG_EVAL) 00124 #define USE_STM324xG_EVAL 00125 #endif 00126 00127 /** @addtogroup STM324xG_EVAL_LOW_LEVEL_LED STM324xG EVAL LOW LEVEL LED 00128 * @{ 00129 */ 00130 #define LEDn 4 00131 00132 #define LED1_PIN GPIO_PIN_6 00133 #define LED1_GPIO_PORT GPIOG 00134 #define LED1_GPIO_CLK_ENABLE() __GPIOG_CLK_ENABLE() 00135 #define LED1_GPIO_CLK_DISABLE() __GPIOG_CLK_DISABLE() 00136 00137 #define LED2_PIN GPIO_PIN_8 00138 #define LED2_GPIO_PORT GPIOG 00139 #define LED2_GPIO_CLK_ENABLE() __GPIOG_CLK_ENABLE() 00140 #define LED2_GPIO_CLK_DISABLE() __GPIOG_CLK_DISABLE() 00141 00142 #define LED3_PIN GPIO_PIN_9 00143 #define LED3_GPIO_PORT GPIOI 00144 #define LED3_GPIO_CLK_ENABLE() __GPIOI_CLK_ENABLE() 00145 #define LED3_GPIO_CLK_DISABLE() __GPIOI_CLK_DISABLE() 00146 00147 #define LED4_PIN GPIO_PIN_7 00148 #define LED4_GPIO_PORT GPIOC 00149 #define LED4_GPIO_CLK RCC_AHB1Periph_GPIOC 00150 #define LED4_GPIO_CLK_ENABLE() __GPIOC_CLK_ENABLE() 00151 #define LED4_GPIO_CLK_DISABLE() __GPIOC_CLK_DISABLE() 00152 00153 #define LEDx_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) LED1_GPIO_CLK_ENABLE(); else \ 00154 if((__INDEX__) == 1) LED2_GPIO_CLK_ENABLE(); else \ 00155 if((__INDEX__) == 2) LED3_GPIO_CLK_ENABLE(); else \ 00156 if((__INDEX__) == 3) LED4_GPIO_CLK_ENABLE(); \ 00157 }while(0) 00158 #define LEDx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) LED1_GPIO_CLK_DISABLE(); else \ 00159 if((__INDEX__) == 1) LED2_GPIO_CLK_DISABLE(); else \ 00160 if((__INDEX__) == 2) LED3_GPIO_CLK_DISABLE(); else \ 00161 if((__INDEX__) == 3) LED4_GPIO_CLK_DISABLE(); \ 00162 }while(0) 00163 /** 00164 * @} 00165 */ 00166 00167 /** @addtogroup STM324xG_EVAL_LOW_LEVEL_BUTTON STM324xG EVAL LOW LEVEL BUTTON 00168 * @{ 00169 */ 00170 /* Joystick pins are connected to IO Expander (accessible through I2C1 interface) */ 00171 #define BUTTONn 3 00172 00173 /** 00174 * @brief Wakeup push-button 00175 */ 00176 #define WAKEUP_BUTTON_PIN GPIO_PIN_0 00177 #define WAKEUP_BUTTON_GPIO_PORT GPIOA 00178 #define WAKEUP_BUTTON_GPIO_CLK_ENABLE() __GPIOA_CLK_ENABLE() 00179 #define WAKEUP_BUTTON_GPIO_CLK_DISABLE() __GPIOA_CLK_DISABLE() 00180 #define WAKEUP_BUTTON_EXTI_IRQn EXTI0_IRQn 00181 00182 /** 00183 * @brief Tamper push-button 00184 */ 00185 #define TAMPER_BUTTON_PIN GPIO_PIN_13 00186 #define TAMPER_BUTTON_GPIO_PORT GPIOC 00187 #define TAMPER_BUTTON_GPIO_CLK_ENABLE() __GPIOC_CLK_ENABLE() 00188 #define TAMPER_BUTTON_GPIO_CLK_DISABLE() __GPIOC_CLK_DISABLE() 00189 #define TAMPER_BUTTON_EXTI_IRQn EXTI15_10_IRQn 00190 00191 /** 00192 * @brief Key push-button 00193 */ 00194 #define KEY_BUTTON_PIN GPIO_PIN_15 00195 #define KEY_BUTTON_GPIO_PORT GPIOG 00196 #define KEY_BUTTON_GPIO_CLK_ENABLE() __GPIOG_CLK_ENABLE() 00197 #define KEY_BUTTON_GPIO_CLK_DISABLE() __GPIOG_CLK_DISABLE() 00198 #define KEY_BUTTON_EXTI_IRQn EXTI15_10_IRQn 00199 00200 #define BUTTONx_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) WAKEUP_BUTTON_GPIO_CLK_ENABLE(); else \ 00201 if((__INDEX__) == 1) TAMPER_BUTTON_GPIO_CLK_ENABLE(); else \ 00202 if((__INDEX__) == 2) KEY_BUTTON_GPIO_CLK_ENABLE(); \ 00203 }while(0) 00204 #define BUTTONx_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) WAKEUP_BUTTON_GPIO_CLK_DISABLE(); else \ 00205 if((__INDEX__) == 1) TAMPER_BUTTON_GPIO_CLK_DISABLE(); else \ 00206 if ((__INDEX__) == 2) KEY_BUTTON_GPIO_CLK_DISABLE(); \ 00207 }while(0) 00208 /** 00209 * @} 00210 */ 00211 00212 /** @addtogroup STM324xG_EVAL_LOW_LEVEL_COM STM324xG EVAL LOW LEVEL COM 00213 * @{ 00214 */ 00215 #define COMn 1 00216 00217 /** 00218 * @brief Definition for COM port1, connected to USART3 00219 */ 00220 #define EVAL_COM1 USART3 00221 #define EVAL_COM1_CLK_ENABLE() __USART3_CLK_ENABLE() 00222 #define EVAL_COM1_CLK_DISABLE() __USART3_CLK_DISABLE() 00223 00224 #define EVAL_COM1_TX_PIN GPIO_PIN_10 00225 #define EVAL_COM1_TX_GPIO_PORT GPIOC 00226 #define EVAL_COM1_TX_GPIO_CLK_ENABLE() __GPIOC_CLK_ENABLE() 00227 #define EVAL_COM1_TX_GPIO_CLK_DISABLE() __GPIOC_CLK_DISABLE() 00228 #define EVAL_COM1_TX_AF GPIO_AF7_USART3 00229 00230 #define EVAL_COM1_RX_PIN GPIO_PIN_11 00231 #define EVAL_COM1_RX_GPIO_PORT GPIOC 00232 #define EVAL_COM1_RX_GPIO_CLK_ENABLE() __GPIOC_CLK_ENABLE() 00233 #define EVAL_COM1_RX_GPIO_CLK_DISABLE() __GPIOC_CLK_DISABLE() 00234 #define EVAL_COM1_RX_AF GPIO_AF7_USART3 00235 00236 #define EVAL_COM1_IRQn USART3_IRQn 00237 00238 #define EVAL_COMx_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) EVAL_COM1_CLK_ENABLE(); \ 00239 }while(0) 00240 #define EVAL_COMx_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) EVAL_COM1_CLK_DISABLE(); \ 00241 }while(0) 00242 00243 #define EVAL_COMx_TX_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) EVAL_COM1_TX_GPIO_CLK_ENABLE(); \ 00244 }while(0) 00245 #define EVAL_COMx_TX_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) EVAL_COM1_TX_GPIO_CLK_DISABLE(); \ 00246 }while(0) 00247 00248 #define EVAL_COMx_RX_GPIO_CLK_ENABLE(__INDEX__) do{if((__INDEX__) == 0) EVAL_COM1_RX_GPIO_CLK_ENABLE(); \ 00249 }while(0) 00250 #define EVAL_COMx_RX_GPIO_CLK_DISABLE(__INDEX__) do{if((__INDEX__) == 0) EVAL_COM1_RX_GPIO_CLK_DISABLE(); \ 00251 }while(0) 00252 00253 /** 00254 * @brief Joystick Pins definition 00255 */ 00256 #define JOY_SEL_PIN IO_PIN_7 00257 #define JOY_DOWN_PIN IO_PIN_6 00258 #define JOY_LEFT_PIN IO_PIN_5 00259 #define JOY_RIGHT_PIN IO_PIN_4 00260 #define JOY_UP_PIN IO_PIN_3 00261 #define JOY_NONE_PIN JOY_ALL_PINS 00262 #define JOY_ALL_PINS (IO_PIN_3 | IO_PIN_4 | IO_PIN_5 | IO_PIN_6 | IO_PIN_7) 00263 00264 /* Exported constantIO -------------------------------------------------------*/ 00265 /* I2C clock speed configuration (in Hz) 00266 WARNING: 00267 Make sure that this define is not already declared in other files (ie. 00268 stm324xg_eval.h file). It can be used in parallel by other modules. */ 00269 #ifndef BSP_I2C_SPEED 00270 #define BSP_I2C_SPEED 100000 00271 #endif /* BSP_I2C_SPEED */ 00272 00273 #define IO_I2C_ADDRESS 0x88 00274 #define TS_I2C_ADDRESS 0x82 00275 #define CAMERA_I2C_ADDRESS 0x60 00276 #define AUDIO_I2C_ADDRESS 0x94 00277 /* For M24C64 devices, E0, E1 and E2 pins are all used for device 00278 address selection (no need for additional address lines). According to the 00279 Hardware connection on the board (on STM324xG-EVAL board E0 = E1 = E2 = 0) */ 00280 #define EEPROM_I2C_ADDRESS 0xA0 00281 00282 /* User can use this section to tailor I2Cx/I2Cx instance used and associated 00283 resources */ 00284 /* Definition for I2Cx clock resources */ 00285 #define EVAL_I2Cx I2C1 00286 #define EVAL_I2Cx_CLK_ENABLE() __I2C1_CLK_ENABLE() 00287 #define EVAL_DMAx_CLK_ENABLE() __DMA1_CLK_ENABLE() 00288 #define EVAL_I2Cx_SCL_SDA_GPIO_CLK_ENABLE() __GPIOB_CLK_ENABLE() 00289 00290 #define EVAL_I2Cx_FORCE_RESET() __I2C1_FORCE_RESET() 00291 #define EVAL_I2Cx_RELEASE_RESET() __I2C1_RELEASE_RESET() 00292 00293 /* Definition for I2Cx Pins */ 00294 #define EVAL_I2Cx_SCL_PIN GPIO_PIN_6 00295 #define EVAL_I2Cx_SCL_SDA_GPIO_PORT GPIOB 00296 #define EVAL_I2Cx_SCL_SDA_AF GPIO_AF4_I2C1 00297 #define EVAL_I2Cx_SDA_PIN GPIO_PIN_9 00298 00299 /* I2C interrupt requests */ 00300 #define EVAL_I2Cx_EV_IRQn I2C1_EV_IRQn 00301 #define EVAL_I2Cx_ER_IRQn I2C1_ER_IRQn 00302 00303 /** 00304 * @} 00305 */ 00306 00307 /** 00308 * @} 00309 */ 00310 00311 /** @defgroup STM324xG_EVAL_LOW_LEVEL_Exported_Macros STM324xG EVAL LOW LEVEL Exported Macros 00312 * @{ 00313 */ 00314 /** 00315 * @} 00316 */ 00317 00318 00319 /** @defgroup STM324xG_EVAL_LOW_LEVEL_Exported_Functions STM324xG EVAL LOW LEVEL Exported Functions 00320 * @{ 00321 */ 00322 uint32_t BSP_GetVersion(void); 00323 void BSP_LED_Init(Led_TypeDef Led); 00324 void BSP_LED_On(Led_TypeDef Led); 00325 void BSP_LED_Off(Led_TypeDef Led); 00326 void BSP_LED_Toggle(Led_TypeDef Led); 00327 void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode); 00328 uint32_t BSP_PB_GetState(Button_TypeDef Button); 00329 void BSP_COM_Init(COM_TypeDef COM, UART_HandleTypeDef *huart); 00330 uint8_t BSP_JOY_Init(JOYMode_TypeDef Joy_Mode); 00331 JOYState_TypeDef BSP_JOY_GetState(void); 00332 00333 /** 00334 * @} 00335 */ 00336 00337 /** 00338 * @} 00339 */ 00340 00341 /** 00342 * @} 00343 */ 00344 00345 /** 00346 * @} 00347 */ 00348 00349 #ifdef __cplusplus 00350 } 00351 #endif 00352 00353 #endif /* __STM324xG_EVAL_H */ 00354 00355 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Fri Jan 15 2016 14:22:29 for STM324xG_EVAL BSP User Manual by
