/** ****************************************************************************** * @file Examples_LL/I2C/I2C_TwoBoards_MasterTx_SlaveRx_DMA/Inc/main.h * @author MCD Application Team * @brief Header for main.c module ****************************************************************************** * @attention * * Copyright (c) 2017 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** *//* ... *//* Define to prevent recursive inclusion -------------------------------------*/#ifndef__MAIN_H#define__MAIN_H/* Includes ------------------------------------------------------------------*/#include"stm32f4xx_ll_bus.h"#include"stm32f4xx_ll_rcc.h"#include"stm32f4xx_ll_system.h"#include"stm32f4xx_ll_utils.h"#include"stm32f4xx_ll_cortex.h"#include"stm32f4xx_ll_gpio.h"#include"stm32f4xx_ll_exti.h"#include"stm32f4xx_ll_dma.h"#include"stm32f4xx_ll_i2c.h"#include"stm32f4xx_ll_pwr.h"10 includes#ifdefined(USE_FULL_ASSERT)#include"stm32_assert.h"#endif/* USE_FULL_ASSERT */Includes/* Exported types ------------------------------------------------------------*//* Exported constants --------------------------------------------------------*//* Define used to enable time-out management*/#defineUSE_TIMEOUT0/** * @brief LED2 *//* ... */#defineLED2_PINLL_GPIO_PIN_5#defineLED2_GPIO_PORTGPIOA#defineLED2_GPIO_CLK_ENABLE()LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA)/** * @brief Toggle periods for various blinking modes *//* ... */#defineLED_BLINK_FAST200#defineLED_BLINK_SLOW500#defineLED_BLINK_ERROR1000/** * @brief Key push-button *//* ... */#defineUSER_BUTTON_PINLL_GPIO_PIN_13#defineUSER_BUTTON_GPIO_PORTGPIOC#defineUSER_BUTTON_GPIO_CLK_ENABLE()LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOC)#defineUSER_BUTTON_EXTI_LINELL_EXTI_LINE_13#defineUSER_BUTTON_EXTI_IRQnEXTI15_10_IRQn#defineUSER_BUTTON_EXTI_LINE_ENABLE()LL_EXTI_EnableIT_0_31(USER_BUTTON_EXTI_LINE)#defineUSER_BUTTON_EXTI_FALLING_TRIG_ENABLE()LL_EXTI_EnableFallingTrig_0_31(USER_BUTTON_EXTI_LINE)#defineUSER_BUTTON_SYSCFG_SET_EXTI()do{\LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);\LL_SYSCFG_SetEXTISource(LL_SYSCFG_EXTI_PORTC,LL_SYSCFG_EXTI_LINE13);\...}while(0)...#defineUSER_BUTTON_IRQHANDLEREXTI15_10_IRQHandler/** * @brief Slave settings *//* ... */#defineSLAVE_OWN_ADDRESS0x5A/* This value is a left shift of a real 7 bits of a slave address value which can find in a Datasheet as example: b0101101 mean in uint8_t equivalent at 0x2D and this value can be seen in the OAR1 register in bits ADD[1:7] *//* ... *//** * @brief Master Transfer Request Direction *//* ... */#defineI2C_REQUEST_WRITE0x00#defineI2C_REQUEST_READ0x0119 defines/* Uncomment this line to use the board as slave, if not it is used as master *///#define SLAVE_BOARDExported constants/* Exported macro ------------------------------------------------------------*//* Exported functions ------------------------------------------------------- *//* IRQ Handler treatment functions */voidUserButton_Callback(void);#ifdefSLAVE_BOARDvoidDMA1_Transfer_Complete_Callback(void);voidDMA1_Transfer_Error_Callback(void);/* ... */#else/* MASTER_BOARD */voidDMA1_Transfer_Complete_Callback(void);voidDMA1_Transfer_Error_Callback(void);/* ... */#endif/* SLAVE_BOARD */voidError_Callback(void);Exported functions/* ... */#endif/* __MAIN_H */