USB Device - Joystick/Mouse  1.0
stm324xg_eval.h
Go to the documentation of this file.
1 
29 /* Define to prevent recursive inclusion -------------------------------------*/
30 #ifndef __STM324xG_EVAL_H
31 #define __STM324xG_EVAL_H
32 
33 #ifdef __cplusplus
34  extern "C" {
35 #endif
36 
37 /* Includes ------------------------------------------------------------------*/
38 #include "stm32f4xx.h"
39 #include "stm32_eval_legacy.h"
40 
60 typedef enum
61 {
62  LED1 = 0,
63  LED2 = 1,
64  LED3 = 2,
65  LED4 = 3
66 } Led_TypeDef;
67 
68 typedef enum
69 {
70  BUTTON_WAKEUP = 0,
71  BUTTON_TAMPER = 1,
72  BUTTON_KEY = 2,
73  BUTTON_RIGHT = 3,
74  BUTTON_LEFT = 4,
75  BUTTON_UP = 5,
76  BUTTON_DOWN = 6,
77  BUTTON_SEL = 7
78 } Button_TypeDef;
79 
80 typedef enum
81 {
82  BUTTON_MODE_GPIO = 0,
83  BUTTON_MODE_EXTI = 1
84 } ButtonMode_TypeDef;
85 
86 typedef enum
87 {
88  JOY_NONE = 0,
89  JOY_SEL = 1,
90  JOY_DOWN = 2,
91  JOY_LEFT = 3,
92  JOY_RIGHT = 4,
93  JOY_UP = 5
95 ;
96 
97 typedef enum
98 {
99  COM1 = 0,
100  COM2 = 1
101 } COM_TypeDef;
113 #if !defined (USE_STM324xG_EVAL)
114  #define USE_STM324xG_EVAL
115 #endif
116 
120 #define LEDn 4
121 
122 #define LED1_PIN GPIO_Pin_6
123 #define LED1_GPIO_PORT GPIOG
124 #define LED1_GPIO_CLK RCC_AHB1Periph_GPIOG
125 
126 #define LED2_PIN GPIO_Pin_8
127 #define LED2_GPIO_PORT GPIOG
128 #define LED2_GPIO_CLK RCC_AHB1Periph_GPIOG
129 
130 #define LED3_PIN GPIO_Pin_9
131 #define LED3_GPIO_PORT GPIOI
132 #define LED3_GPIO_CLK RCC_AHB1Periph_GPIOI
133 
134 #define LED4_PIN GPIO_Pin_7
135 #define LED4_GPIO_PORT GPIOC
136 #define LED4_GPIO_CLK RCC_AHB1Periph_GPIOC
137 
145 #define BUTTONn 3
152 #define WAKEUP_BUTTON_PIN GPIO_Pin_0
153 #define WAKEUP_BUTTON_GPIO_PORT GPIOA
154 #define WAKEUP_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOA
155 #define WAKEUP_BUTTON_EXTI_LINE EXTI_Line0
156 #define WAKEUP_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOA
157 #define WAKEUP_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource0
158 #define WAKEUP_BUTTON_EXTI_IRQn EXTI0_IRQn
159 
163 #define TAMPER_BUTTON_PIN GPIO_Pin_13
164 #define TAMPER_BUTTON_GPIO_PORT GPIOC
165 #define TAMPER_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOC
166 #define TAMPER_BUTTON_EXTI_LINE EXTI_Line13
167 #define TAMPER_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOC
168 #define TAMPER_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource13
169 #define TAMPER_BUTTON_EXTI_IRQn EXTI15_10_IRQn
170 
174 #define KEY_BUTTON_PIN GPIO_Pin_15
175 #define KEY_BUTTON_GPIO_PORT GPIOG
176 #define KEY_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOG
177 #define KEY_BUTTON_EXTI_LINE EXTI_Line15
178 #define KEY_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOG
179 #define KEY_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource15
180 #define KEY_BUTTON_EXTI_IRQn EXTI15_10_IRQn
181 
188 #define COMn 1
189 
193 #define EVAL_COM1 USART3
194 #define EVAL_COM1_CLK RCC_APB1Periph_USART3
195 #define EVAL_COM1_TX_PIN GPIO_Pin_10
196 #define EVAL_COM1_TX_GPIO_PORT GPIOC
197 #define EVAL_COM1_TX_GPIO_CLK RCC_AHB1Periph_GPIOC
198 #define EVAL_COM1_TX_SOURCE GPIO_PinSource10
199 #define EVAL_COM1_TX_AF GPIO_AF_USART3
200 #define EVAL_COM1_RX_PIN GPIO_Pin_11
201 #define EVAL_COM1_RX_GPIO_PORT GPIOC
202 #define EVAL_COM1_RX_GPIO_CLK RCC_AHB1Periph_GPIOC
203 #define EVAL_COM1_RX_SOURCE GPIO_PinSource11
204 #define EVAL_COM1_RX_AF GPIO_AF_USART3
205 #define EVAL_COM1_IRQn USART3_IRQn
206 
217 #define SD_DETECT_PIN GPIO_Pin_13 /* PH.13 */
218 #define SD_DETECT_GPIO_PORT GPIOH /* GPIOH */
219 #define SD_DETECT_GPIO_CLK RCC_AHB1Periph_GPIOH
220 
221 #define SDIO_FIFO_ADDRESS ((uint32_t)0x40012C80)
222 
225 #define SDIO_INIT_CLK_DIV ((uint8_t)0x76)
226 
229 #define SDIO_TRANSFER_CLK_DIV ((uint8_t)0x0)
230 
231 #define SD_SDIO_DMA DMA2
232 #define SD_SDIO_DMA_CLK RCC_AHB1Periph_DMA2
233 
234 #define SD_SDIO_DMA_STREAM3 3
235 //#define SD_SDIO_DMA_STREAM6 6
236 
237 #ifdef SD_SDIO_DMA_STREAM3
238  #define SD_SDIO_DMA_STREAM DMA2_Stream3
239  #define SD_SDIO_DMA_CHANNEL DMA_Channel_4
240  #define SD_SDIO_DMA_FLAG_FEIF DMA_FLAG_FEIF3
241  #define SD_SDIO_DMA_FLAG_DMEIF DMA_FLAG_DMEIF3
242  #define SD_SDIO_DMA_FLAG_TEIF DMA_FLAG_TEIF3
243  #define SD_SDIO_DMA_FLAG_HTIF DMA_FLAG_HTIF3
244  #define SD_SDIO_DMA_FLAG_TCIF DMA_FLAG_TCIF3
245  #define SD_SDIO_DMA_IRQn DMA2_Stream3_IRQn
246  #define SD_SDIO_DMA_IRQHANDLER DMA2_Stream3_IRQHandler
247 #elif defined SD_SDIO_DMA_STREAM6
248  #define SD_SDIO_DMA_STREAM DMA2_Stream6
249  #define SD_SDIO_DMA_CHANNEL DMA_Channel_4
250  #define SD_SDIO_DMA_FLAG_FEIF DMA_FLAG_FEIF6
251  #define SD_SDIO_DMA_FLAG_DMEIF DMA_FLAG_DMEIF6
252  #define SD_SDIO_DMA_FLAG_TEIF DMA_FLAG_TEIF6
253  #define SD_SDIO_DMA_FLAG_HTIF DMA_FLAG_HTIF6
254  #define SD_SDIO_DMA_FLAG_TCIF DMA_FLAG_TCIF6
255  #define SD_SDIO_DMA_IRQn DMA2_Stream6_IRQn
256  #define SD_SDIO_DMA_IRQHANDLER DMA2_Stream6_IRQHandler
257 #endif /* SD_SDIO_DMA_STREAM3 */
258 
269 #define sEE_I2C I2C1
270 #define sEE_I2C_CLK RCC_APB1Periph_I2C1
271 #define sEE_I2C_SCL_PIN GPIO_Pin_6 /* PB.06 */
272 #define sEE_I2C_SCL_GPIO_PORT GPIOB /* GPIOB */
273 #define sEE_I2C_SCL_GPIO_CLK RCC_AHB1Periph_GPIOB
274 #define sEE_I2C_SCL_SOURCE GPIO_PinSource6
275 #define sEE_I2C_SCL_AF GPIO_AF_I2C1
276 #define sEE_I2C_SDA_PIN GPIO_Pin_9 /* PB.09 */
277 #define sEE_I2C_SDA_GPIO_PORT GPIOB /* GPIOB */
278 #define sEE_I2C_SDA_GPIO_CLK RCC_AHB1Periph_GPIOB
279 #define sEE_I2C_SDA_SOURCE GPIO_PinSource9
280 #define sEE_I2C_SDA_AF GPIO_AF_I2C1
281 #define sEE_M24C64_32
282 
283 #define sEE_I2C_DMA DMA1
284 #define sEE_I2C_DMA_CHANNEL DMA_Channel_1
285 #define sEE_I2C_DMA_STREAM_TX DMA1_Stream6
286 #define sEE_I2C_DMA_STREAM_RX DMA1_Stream0
287 #define sEE_I2C_DMA_CLK RCC_AHB1Periph_DMA1
288 #define sEE_I2C_DR_Address ((uint32_t)0x40005410)
289 #define sEE_USE_DMA
290 
291 #define sEE_I2C_DMA_TX_IRQn DMA1_Stream6_IRQn
292 #define sEE_I2C_DMA_RX_IRQn DMA1_Stream0_IRQn
293 #define sEE_I2C_DMA_TX_IRQHandler DMA1_Stream6_IRQHandler
294 #define sEE_I2C_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler
295 #define sEE_I2C_DMA_PREPRIO 0
296 #define sEE_I2C_DMA_SUBPRIO 0
297 
298 #define sEE_TX_DMA_FLAG_FEIF DMA_FLAG_FEIF6
299 #define sEE_TX_DMA_FLAG_DMEIF DMA_FLAG_DMEIF6
300 #define sEE_TX_DMA_FLAG_TEIF DMA_FLAG_TEIF6
301 #define sEE_TX_DMA_FLAG_HTIF DMA_FLAG_HTIF6
302 #define sEE_TX_DMA_FLAG_TCIF DMA_FLAG_TCIF6
303 #define sEE_RX_DMA_FLAG_FEIF DMA_FLAG_FEIF0
304 #define sEE_RX_DMA_FLAG_DMEIF DMA_FLAG_DMEIF0
305 #define sEE_RX_DMA_FLAG_TEIF DMA_FLAG_TEIF0
306 #define sEE_RX_DMA_FLAG_HTIF DMA_FLAG_HTIF0
307 #define sEE_RX_DMA_FLAG_TCIF DMA_FLAG_TCIF0
308 
309 #define sEE_DIRECTION_TX 0
310 #define sEE_DIRECTION_RX 1
311 
312 /* Time constant for the delay caclulation allowing to have a millisecond
313  incrementing counter. This value should be equal to (System Clock / 1000).
314  ie. if system clock = 168MHz then sEE_TIME_CONST should be 168. */
315 #define sEE_TIME_CONST 168
316 
334 void STM_EVAL_LEDInit(Led_TypeDef Led);
335 void STM_EVAL_LEDOn(Led_TypeDef Led);
336 void STM_EVAL_LEDOff(Led_TypeDef Led);
337 void STM_EVAL_LEDToggle(Led_TypeDef Led);
338 void STM_EVAL_PBInit(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode);
339 uint32_t STM_EVAL_PBGetState(Button_TypeDef Button);
340 void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* USART_InitStruct);
341 void SD_LowLevel_DeInit(void);
342 void SD_LowLevel_Init(void);
343 void SD_LowLevel_DMA_TxConfig(uint32_t *BufferSRC, uint32_t BufferSize);
344 void SD_LowLevel_DMA_RxConfig(uint32_t *BufferDST, uint32_t BufferSize);
345 void sEE_LowLevel_DeInit(void);
346 void sEE_LowLevel_Init(void);
347 void sEE_LowLevel_DMAConfig(uint32_t pBuffer, uint32_t BufferSize, uint32_t Direction);
352 #ifdef __cplusplus
353 }
354 #endif
355 
356 #endif /* __STM324xG_EVAL_H */
357 
373 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
void STM_EVAL_LEDOff(Led_TypeDef Led)
Turns selected LED Off.
Definition: stm324xg_eval.c:211
void sEE_LowLevel_Init(void)
Initializes peripherals used by the I2C EEPROM driver.
Definition: stm324xg_eval.c:598
JOYState_TypeDef
Joystick State definitions.
Definition: stm324xg_eval_ioe.h:88
void STM_EVAL_LEDInit(Led_TypeDef Led)
Configures LED GPIO.
Definition: stm324xg_eval.c:169
void SD_LowLevel_DeInit(void)
DeInitializes the SDIO interface.
Definition: stm324xg_eval.c:373
void sEE_LowLevel_DMAConfig(uint32_t pBuffer, uint32_t BufferSize, uint32_t Direction)
Initializes DMA channel used by the I2C EEPROM driver.
Definition: stm324xg_eval.c:695
void STM_EVAL_LEDToggle(Led_TypeDef Led)
Toggles the selected LED.
Definition: stm324xg_eval.c:226
void sEE_LowLevel_DeInit(void)
DeInitializes peripherals used by the I2C EEPROM driver.
Definition: stm324xg_eval.c:549
void SD_LowLevel_Init(void)
Initializes the SD Card and put it into StandBy State (Ready for data transfer).
Definition: stm324xg_eval.c:417
This file contains defines legacy for STM32 EVAL drivers.
void SD_LowLevel_DMA_RxConfig(uint32_t *BufferDST, uint32_t BufferSize)
Configures the DMA2 Channel4 for SDIO Rx request.
Definition: stm324xg_eval.c:509
void SD_LowLevel_DMA_TxConfig(uint32_t *BufferSRC, uint32_t BufferSize)
Configures the DMA2 Channel4 for SDIO Tx request.
Definition: stm324xg_eval.c:467
void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef *USART_InitStruct)
Configures COM port.
Definition: stm324xg_eval.c:328
void STM_EVAL_PBInit(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode)
Configures Button GPIO and EXTI Line.
Definition: stm324xg_eval.c:250
uint32_t STM_EVAL_PBGetState(Button_TypeDef Button)
Returns the selected Button state.
Definition: stm324xg_eval.c:312
void STM_EVAL_LEDOn(Led_TypeDef Led)
Turns selected LED On.
Definition: stm324xg_eval.c:196