STM324xG_EVAL BSP User Manual: stm324xg_eval.h Source File

STM3240G / STM3241G EVAL BSP Drivers

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>&copy; 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   doxygen 1.7.6.1