STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
stm32f4xx_hal_conf_template.h
Go to the documentation of this file.
1
21/* Define to prevent recursive inclusion -------------------------------------*/
22#ifndef __STM32F4xx_HAL_CONF_H
23#define __STM32F4xx_HAL_CONF_H
24
25#ifdef __cplusplus
26 extern "C" {
27#endif
28
29/* Exported types ------------------------------------------------------------*/
30/* Exported constants --------------------------------------------------------*/
31
32/* ########################## Module Selection ############################## */
36#define HAL_MODULE_ENABLED
37#define HAL_ADC_MODULE_ENABLED
38#define HAL_CAN_MODULE_ENABLED
39/* #define HAL_CAN_LEGACY_MODULE_ENABLED */
40#define HAL_CRC_MODULE_ENABLED
41#define HAL_CEC_MODULE_ENABLED
42#define HAL_CRYP_MODULE_ENABLED
43#define HAL_DAC_MODULE_ENABLED
44#define HAL_DCMI_MODULE_ENABLED
45#define HAL_DMA_MODULE_ENABLED
46#define HAL_DMA2D_MODULE_ENABLED
47#define HAL_ETH_MODULE_ENABLED
48/* #define HAL_ETH_LEGACY_MODULE_ENABLED */
49#define HAL_FLASH_MODULE_ENABLED
50#define HAL_NAND_MODULE_ENABLED
51#define HAL_NOR_MODULE_ENABLED
52#define HAL_PCCARD_MODULE_ENABLED
53#define HAL_SRAM_MODULE_ENABLED
54#define HAL_SDRAM_MODULE_ENABLED
55#define HAL_HASH_MODULE_ENABLED
56#define HAL_GPIO_MODULE_ENABLED
57#define HAL_EXTI_MODULE_ENABLED
58#define HAL_I2C_MODULE_ENABLED
59#define HAL_SMBUS_MODULE_ENABLED
60#define HAL_I2S_MODULE_ENABLED
61#define HAL_IWDG_MODULE_ENABLED
62#define HAL_LTDC_MODULE_ENABLED
63#define HAL_DSI_MODULE_ENABLED
64#define HAL_PWR_MODULE_ENABLED
65#define HAL_QSPI_MODULE_ENABLED
66#define HAL_RCC_MODULE_ENABLED
67#define HAL_RNG_MODULE_ENABLED
68#define HAL_RTC_MODULE_ENABLED
69#define HAL_SAI_MODULE_ENABLED
70#define HAL_SD_MODULE_ENABLED
71#define HAL_SPI_MODULE_ENABLED
72#define HAL_TIM_MODULE_ENABLED
73#define HAL_UART_MODULE_ENABLED
74#define HAL_USART_MODULE_ENABLED
75#define HAL_IRDA_MODULE_ENABLED
76#define HAL_SMARTCARD_MODULE_ENABLED
77#define HAL_WWDG_MODULE_ENABLED
78#define HAL_CORTEX_MODULE_ENABLED
79#define HAL_PCD_MODULE_ENABLED
80#define HAL_HCD_MODULE_ENABLED
81#define HAL_FMPI2C_MODULE_ENABLED
82#define HAL_FMPSMBUS_MODULE_ENABLED
83#define HAL_SPDIFRX_MODULE_ENABLED
84#define HAL_DFSDM_MODULE_ENABLED
85#define HAL_LPTIM_MODULE_ENABLED
86#define HAL_MMC_MODULE_ENABLED
87
88/* ########################## HSE/HSI Values adaptation ##################### */
94#if !defined (HSE_VALUE)
95 #define HSE_VALUE 25000000U
96#endif /* HSE_VALUE */
97
98#if !defined (HSE_STARTUP_TIMEOUT)
99 #define HSE_STARTUP_TIMEOUT 100U
100#endif /* HSE_STARTUP_TIMEOUT */
101
107#if !defined (HSI_VALUE)
108 #define HSI_VALUE 16000000U
109#endif /* HSI_VALUE */
110
114#if !defined (LSI_VALUE)
115 #define LSI_VALUE 32000U
116#endif /* LSI_VALUE */
122#if !defined (LSE_VALUE)
123 #define LSE_VALUE 32768U
124#endif /* LSE_VALUE */
125
126#if !defined (LSE_STARTUP_TIMEOUT)
127 #define LSE_STARTUP_TIMEOUT 5000U
128#endif /* LSE_STARTUP_TIMEOUT */
129
135#if !defined (EXTERNAL_CLOCK_VALUE)
136 #define EXTERNAL_CLOCK_VALUE 12288000U
137#endif /* EXTERNAL_CLOCK_VALUE */
138
139/* Tip: To avoid modifying this file each time you need to use different HSE,
140 === you can define the HSE value in your toolchain compiler preprocessor. */
141
142/* ########################### System Configuration ######################### */
146#define VDD_VALUE 3300U
147#define TICK_INT_PRIORITY 0x0FU
148#define USE_RTOS 0U
149#define PREFETCH_ENABLE 1U
150#define INSTRUCTION_CACHE_ENABLE 1U
151#define DATA_CACHE_ENABLE 1U
152
153#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
154#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
155#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
156#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */
157#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
158#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U /* DCMI register callback disabled */
159#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U /* DFSDM register callback disabled */
160#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U /* DMA2D register callback disabled */
161#define USE_HAL_DSI_REGISTER_CALLBACKS 0U /* DSI register callback disabled */
162#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
163#define USE_HAL_HASH_REGISTER_CALLBACKS 0U /* HASH register callback disabled */
164#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
165#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
166#define USE_HAL_FMPI2C_REGISTER_CALLBACKS 0U /* FMPI2C register callback disabled */
167#define USE_HAL_FMPSMBUS_REGISTER_CALLBACKS 0U /* FMPSMBUS register callback disabled */
168#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
169#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
170#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */
171#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */
172#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
173#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
174#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
175#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */
176#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
177#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */
178#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */
179#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
180#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */
181#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
182#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
183#define USE_HAL_SDRAM_REGISTER_CALLBACKS 0U /* SDRAM register callback disabled */
184#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
185#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
186#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
187#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
188#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
189#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
190#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
191#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
192
193/* ########################## Assert Selection ############################## */
198/* #define USE_FULL_ASSERT 1U */
199
200/* ################## Ethernet peripheral configuration ##################### */
201
202/* Section 1 : Ethernet peripheral configuration */
203
204/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
205#define MAC_ADDR0 2U
206#define MAC_ADDR1 0U
207#define MAC_ADDR2 0U
208#define MAC_ADDR3 0U
209#define MAC_ADDR4 0U
210#define MAC_ADDR5 0U
211
212/* Definition of the Ethernet driver buffers size and count */
213#define ETH_RX_BUF_SIZE 1528U /* ETH Max buffer size for receive */
214#define ETH_TX_BUF_SIZE 1528U /* ETH Max buffer size for transmit */
215#define ETH_RXBUFNB 4U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
216#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
217
218/* Section 2: PHY configuration section */
219
220/* DP83848 PHY Address*/
221#define DP83848_PHY_ADDRESS 0x01U
222/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
223#define PHY_RESET_DELAY 0x000000FFU
224/* PHY Configuration delay */
225#define PHY_CONFIG_DELAY 0x00000FFFU
226
227#define PHY_READ_TO 0x0000FFFFU
228#define PHY_WRITE_TO 0x0000FFFFU
229
230/* Section 3: Common PHY Registers */
231
232#define PHY_BCR ((uint16_t)0x0000)
233#define PHY_BSR ((uint16_t)0x0001)
235#define PHY_RESET ((uint16_t)0x8000)
236#define PHY_LOOPBACK ((uint16_t)0x4000)
237#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100)
238#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000)
239#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100)
240#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000)
241#define PHY_AUTONEGOTIATION ((uint16_t)0x1000)
242#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200)
243#define PHY_POWERDOWN ((uint16_t)0x0800)
244#define PHY_ISOLATE ((uint16_t)0x0400)
246#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020)
247#define PHY_LINKED_STATUS ((uint16_t)0x0004)
248#define PHY_JABBER_DETECTION ((uint16_t)0x0002)
250/* Section 4: Extended PHY Registers */
251
252#define PHY_SR ((uint16_t)0x0010)
253#define PHY_MICR ((uint16_t)0x0011)
254#define PHY_MISR ((uint16_t)0x0012)
256#define PHY_LINK_STATUS ((uint16_t)0x0001)
257#define PHY_SPEED_STATUS ((uint16_t)0x0002)
258#define PHY_DUPLEX_STATUS ((uint16_t)0x0004)
260#define PHY_MICR_INT_EN ((uint16_t)0x0002)
261#define PHY_MICR_INT_OE ((uint16_t)0x0001)
263#define PHY_MISR_LINK_INT_EN ((uint16_t)0x0020)
264#define PHY_LINK_INTERRUPT ((uint16_t)0x2000)
266/* ################## SPI peripheral configuration ########################## */
267
268/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
269* Activated: CRC code is present inside driver
270* Deactivated: CRC code cleaned from driver
271*/
272
273#define USE_SPI_CRC 1U
274
275/* Includes ------------------------------------------------------------------*/
280#ifdef HAL_RCC_MODULE_ENABLED
281 #include "stm32f4xx_hal_rcc.h"
282#endif /* HAL_RCC_MODULE_ENABLED */
283
284#ifdef HAL_GPIO_MODULE_ENABLED
285 #include "stm32f4xx_hal_gpio.h"
286#endif /* HAL_GPIO_MODULE_ENABLED */
287
288#ifdef HAL_EXTI_MODULE_ENABLED
289 #include "stm32f4xx_hal_exti.h"
290#endif /* HAL_EXTI_MODULE_ENABLED */
291
292#ifdef HAL_DMA_MODULE_ENABLED
293 #include "stm32f4xx_hal_dma.h"
294#endif /* HAL_DMA_MODULE_ENABLED */
295
296#ifdef HAL_CORTEX_MODULE_ENABLED
297 #include "stm32f4xx_hal_cortex.h"
298#endif /* HAL_CORTEX_MODULE_ENABLED */
299
300#ifdef HAL_ADC_MODULE_ENABLED
301 #include "stm32f4xx_hal_adc.h"
302#endif /* HAL_ADC_MODULE_ENABLED */
303
304#ifdef HAL_CAN_MODULE_ENABLED
305 #include "stm32f4xx_hal_can.h"
306#endif /* HAL_CAN_MODULE_ENABLED */
307
308#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
310#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
311
312#ifdef HAL_CRC_MODULE_ENABLED
313 #include "stm32f4xx_hal_crc.h"
314#endif /* HAL_CRC_MODULE_ENABLED */
315
316#ifdef HAL_CRYP_MODULE_ENABLED
317 #include "stm32f4xx_hal_cryp.h"
318#endif /* HAL_CRYP_MODULE_ENABLED */
319
320#ifdef HAL_DMA2D_MODULE_ENABLED
321 #include "stm32f4xx_hal_dma2d.h"
322#endif /* HAL_DMA2D_MODULE_ENABLED */
323
324#ifdef HAL_DAC_MODULE_ENABLED
325 #include "stm32f4xx_hal_dac.h"
326#endif /* HAL_DAC_MODULE_ENABLED */
327
328#ifdef HAL_DCMI_MODULE_ENABLED
329 #include "stm32f4xx_hal_dcmi.h"
330#endif /* HAL_DCMI_MODULE_ENABLED */
331
332#ifdef HAL_ETH_MODULE_ENABLED
333 #include "stm32f4xx_hal_eth.h"
334#endif /* HAL_ETH_MODULE_ENABLED */
335
336#ifdef HAL_ETH_LEGACY_MODULE_ENABLED
338#endif /* HAL_ETH_LEGACY_MODULE_ENABLED */
339
340#ifdef HAL_FLASH_MODULE_ENABLED
341 #include "stm32f4xx_hal_flash.h"
342#endif /* HAL_FLASH_MODULE_ENABLED */
343
344#ifdef HAL_SRAM_MODULE_ENABLED
345 #include "stm32f4xx_hal_sram.h"
346#endif /* HAL_SRAM_MODULE_ENABLED */
347
348#ifdef HAL_NOR_MODULE_ENABLED
349 #include "stm32f4xx_hal_nor.h"
350#endif /* HAL_NOR_MODULE_ENABLED */
351
352#ifdef HAL_NAND_MODULE_ENABLED
353 #include "stm32f4xx_hal_nand.h"
354#endif /* HAL_NAND_MODULE_ENABLED */
355
356#ifdef HAL_PCCARD_MODULE_ENABLED
357 #include "stm32f4xx_hal_pccard.h"
358#endif /* HAL_PCCARD_MODULE_ENABLED */
359
360#ifdef HAL_SDRAM_MODULE_ENABLED
361 #include "stm32f4xx_hal_sdram.h"
362#endif /* HAL_SDRAM_MODULE_ENABLED */
363
364#ifdef HAL_HASH_MODULE_ENABLED
365 #include "stm32f4xx_hal_hash.h"
366#endif /* HAL_HASH_MODULE_ENABLED */
367
368#ifdef HAL_I2C_MODULE_ENABLED
369 #include "stm32f4xx_hal_i2c.h"
370#endif /* HAL_I2C_MODULE_ENABLED */
371
372#ifdef HAL_SMBUS_MODULE_ENABLED
373 #include "stm32f4xx_hal_smbus.h"
374#endif /* HAL_SMBUS_MODULE_ENABLED */
375
376#ifdef HAL_I2S_MODULE_ENABLED
377 #include "stm32f4xx_hal_i2s.h"
378#endif /* HAL_I2S_MODULE_ENABLED */
379
380#ifdef HAL_IWDG_MODULE_ENABLED
381 #include "stm32f4xx_hal_iwdg.h"
382#endif /* HAL_IWDG_MODULE_ENABLED */
383
384#ifdef HAL_LTDC_MODULE_ENABLED
385 #include "stm32f4xx_hal_ltdc.h"
386#endif /* HAL_LTDC_MODULE_ENABLED */
387
388#ifdef HAL_PWR_MODULE_ENABLED
389 #include "stm32f4xx_hal_pwr.h"
390#endif /* HAL_PWR_MODULE_ENABLED */
391
392#ifdef HAL_RNG_MODULE_ENABLED
393 #include "stm32f4xx_hal_rng.h"
394#endif /* HAL_RNG_MODULE_ENABLED */
395
396#ifdef HAL_RTC_MODULE_ENABLED
397 #include "stm32f4xx_hal_rtc.h"
398#endif /* HAL_RTC_MODULE_ENABLED */
399
400#ifdef HAL_SAI_MODULE_ENABLED
401 #include "stm32f4xx_hal_sai.h"
402#endif /* HAL_SAI_MODULE_ENABLED */
403
404#ifdef HAL_SD_MODULE_ENABLED
405 #include "stm32f4xx_hal_sd.h"
406#endif /* HAL_SD_MODULE_ENABLED */
407
408#ifdef HAL_SPI_MODULE_ENABLED
409 #include "stm32f4xx_hal_spi.h"
410#endif /* HAL_SPI_MODULE_ENABLED */
411
412#ifdef HAL_TIM_MODULE_ENABLED
413 #include "stm32f4xx_hal_tim.h"
414#endif /* HAL_TIM_MODULE_ENABLED */
415
416#ifdef HAL_UART_MODULE_ENABLED
417 #include "stm32f4xx_hal_uart.h"
418#endif /* HAL_UART_MODULE_ENABLED */
419
420#ifdef HAL_USART_MODULE_ENABLED
421 #include "stm32f4xx_hal_usart.h"
422#endif /* HAL_USART_MODULE_ENABLED */
423
424#ifdef HAL_IRDA_MODULE_ENABLED
425 #include "stm32f4xx_hal_irda.h"
426#endif /* HAL_IRDA_MODULE_ENABLED */
427
428#ifdef HAL_SMARTCARD_MODULE_ENABLED
430#endif /* HAL_SMARTCARD_MODULE_ENABLED */
431
432#ifdef HAL_WWDG_MODULE_ENABLED
433 #include "stm32f4xx_hal_wwdg.h"
434#endif /* HAL_WWDG_MODULE_ENABLED */
435
436#ifdef HAL_PCD_MODULE_ENABLED
437 #include "stm32f4xx_hal_pcd.h"
438#endif /* HAL_PCD_MODULE_ENABLED */
439
440#ifdef HAL_HCD_MODULE_ENABLED
441 #include "stm32f4xx_hal_hcd.h"
442#endif /* HAL_HCD_MODULE_ENABLED */
443
444#ifdef HAL_DSI_MODULE_ENABLED
445 #include "stm32f4xx_hal_dsi.h"
446#endif /* HAL_DSI_MODULE_ENABLED */
447
448#ifdef HAL_QSPI_MODULE_ENABLED
449 #include "stm32f4xx_hal_qspi.h"
450#endif /* HAL_QSPI_MODULE_ENABLED */
451
452#ifdef HAL_CEC_MODULE_ENABLED
453 #include "stm32f4xx_hal_cec.h"
454#endif /* HAL_CEC_MODULE_ENABLED */
455
456#ifdef HAL_FMPI2C_MODULE_ENABLED
457 #include "stm32f4xx_hal_fmpi2c.h"
458#endif /* HAL_FMPI2C_MODULE_ENABLED */
459
460#ifdef HAL_FMPSMBUS_MODULE_ENABLED
461 #include "stm32f4xx_hal_fmpsmbus.h"
462#endif /* HAL_FMPSMBUS_MODULE_ENABLED */
463
464#ifdef HAL_SPDIFRX_MODULE_ENABLED
465 #include "stm32f4xx_hal_spdifrx.h"
466#endif /* HAL_SPDIFRX_MODULE_ENABLED */
467
468#ifdef HAL_DFSDM_MODULE_ENABLED
469 #include "stm32f4xx_hal_dfsdm.h"
470#endif /* HAL_DFSDM_MODULE_ENABLED */
471
472#ifdef HAL_LPTIM_MODULE_ENABLED
473 #include "stm32f4xx_hal_lptim.h"
474#endif /* HAL_LPTIM_MODULE_ENABLED */
475
476#ifdef HAL_MMC_MODULE_ENABLED
477 #include "stm32f4xx_hal_mmc.h"
478#endif /* HAL_MMC_MODULE_ENABLED */
479
480/* Exported macro ------------------------------------------------------------*/
481#ifdef USE_FULL_ASSERT
490 #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
491/* Exported functions ------------------------------------------------------- */
492 void assert_failed(uint8_t* file, uint32_t line);
493#else
494 #define assert_param(expr) ((void)0U)
495#endif /* USE_FULL_ASSERT */
496
497
498#ifdef __cplusplus
499}
500#endif
501
502#endif /* __STM32F4xx_HAL_CONF_H */
503
504
505
Header file containing functions prototypes of ADC HAL library.
Header file of CAN HAL module.
Header file of CAN HAL module.
Header file of CEC HAL module.
Header file of CORTEX HAL module.
Header file of CRC HAL module.
Header file of CRYP HAL module.
Header file of DAC HAL module.
Header file of DCMI HAL module.
Header file of DFSDM HAL module.
Header file of DMA2D HAL module.
Header file of DMA HAL module.
Header file of DSI HAL module.
Header file of ETH HAL module.
Header file of ETH HAL module.
Header file of EXTI HAL module.
Header file of FLASH HAL module.
Header file of FMPI2C HAL module.
Header file of FMPSMBUS HAL module.
Header file of GPIO HAL module.
Header file of HASH HAL module.
Header file of HCD HAL module.
Header file of I2C HAL module.
Header file of I2S HAL module.
Header file of IRDA HAL module.
Header file of IWDG HAL module.
Header file of LPTIM HAL module.
Header file of LTDC HAL module.
Header file of MMC HAL module.
Header file of NAND HAL module.
Header file of NOR HAL module.
Header file of PCCARD HAL module.
Header file of PCD HAL module.
Header file of PWR HAL module.
Header file of QSPI HAL module.
Header file of RCC HAL module.
Header file of RNG HAL module.
Header file of RTC HAL module.
Header file of SAI HAL module.
Header file of SD HAL module.
Header file of SDRAM HAL module.
Header file of SMARTCARD HAL module.
Header file of SMBUS HAL module.
Header file of SPDIFRX HAL module.
Header file of SPI HAL module.
Header file of SRAM HAL module.
Header file of TIM HAL module.
Header file of UART HAL module.
Header file of USART HAL module.
Header file of WWDG HAL module.