-
Notifications
You must be signed in to change notification settings - Fork 0
/
stm32u575i_eval_bus.h
190 lines (155 loc) · 6.24 KB
/
stm32u575i_eval_bus.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
/**
******************************************************************************
* @file stm32u575i_eval_bus.h
* @author MCD Application Team
* @brief This file contains the common defines and functions prototypes for
* the stm32u575i_eval_bus.c driver.
******************************************************************************
* @attention
*
* Copyright (c) 2021 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 STM32U575I_EVAL_BUS_H
#define STM32U575I_EVAL_BUS_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32u575i_eval_conf.h"
#if defined(BSP_USE_CMSIS_OS)
#include "cmsis_os.h"
#endif /* BSP_USE_CMSIS_OS */
/** @addtogroup BSP
* @{
*/
/** @addtogroup STM32U575I_EVAL
* @{
*/
/** @addtogroup STM32U575I_EVAL_BUS
* @{
*/
/** @defgroup STM32U575I_EVAL_BUS_Exported_Types BUS Exported Types
* @{
*/
#if (USE_HAL_I2C_REGISTER_CALLBACKS > 0)
typedef struct
{
pI2C_CallbackTypeDef pMspI2cInitCb;
pI2C_CallbackTypeDef pMspI2cDeInitCb;
} BSP_I2C_Cb_t;
#endif /* (USE_HAL_I2C_REGISTER_CALLBACKS > 0) */
/**
* @}
*/
/** @defgroup STM32U575I_EVAL_BUS_Exported_Constants BUS Exported Constants
* @{
*/
/* Definition for I2C2 clock resources */
#define BUS_I2C2 I2C2
#define BUS_I2C2_CLK_ENABLE() __HAL_RCC_I2C2_CLK_ENABLE()
#define BUS_I2C2_CLK_DISABLE() __HAL_RCC_I2C2_CLK_DISABLE()
#define BUS_I2C2_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define BUS_I2C2_SCL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
#define BUS_I2C2_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
#define BUS_I2C2_SDA_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
#define BUS_I2C2_FORCE_RESET() __HAL_RCC_I2C2_FORCE_RESET()
#define BUS_I2C2_RELEASE_RESET() __HAL_RCC_I2C2_RELEASE_RESET()
/* Definition for I2C2 Pins */
#define BUS_I2C2_SCL_PIN GPIO_PIN_10
#define BUS_I2C2_SCL_GPIO_PORT GPIOB
#define BUS_I2C2_SCL_AF GPIO_AF4_I2C2
#define BUS_I2C2_SDA_PIN GPIO_PIN_11
#define BUS_I2C2_SDA_GPIO_PORT GPIOB
#define BUS_I2C2_SDA_AF GPIO_AF4_I2C2
#ifndef BUS_I2C2_FREQUENCY
#define BUS_I2C2_FREQUENCY 400000U /* Frequency of I2C2 = 400 KHz*/
#endif /* BUS_I2C2_FREQUENCY */
/* Definition for I2C3 clock resources */
#define BUS_I2C3 I2C3
#define BUS_I2C3_CLK_ENABLE() __HAL_RCC_I2C3_CLK_ENABLE()
#define BUS_I2C3_CLK_DISABLE() __HAL_RCC_I2C3_CLK_DISABLE()
#define BUS_I2C3_SCL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE()
#define BUS_I2C3_SCL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE()
#define BUS_I2C3_SDA_GPIO_CLK_ENABLE() __HAL_RCC_GPIOG_CLK_ENABLE()
#define BUS_I2C3_SDA_GPIO_CLK_DISABLE() __HAL_RCC_GPIOG_CLK_DISABLE()
#define BUS_I2C3_FORCE_RESET() __HAL_RCC_I2C3_FORCE_RESET()
#define BUS_I2C3_RELEASE_RESET() __HAL_RCC_I2C3_RELEASE_RESET()
/* Definition for I2C3 Pins */
#define BUS_I2C3_SCL_PIN GPIO_PIN_7
#define BUS_I2C3_SCL_GPIO_PORT GPIOG
#define BUS_I2C3_SCL_AF GPIO_AF4_I2C3
#define BUS_I2C3_SDA_PIN GPIO_PIN_8
#define BUS_I2C3_SDA_GPIO_PORT GPIOG
#define BUS_I2C3_SDA_AF GPIO_AF4_I2C3
#ifndef BUS_I2C3_FREQUENCY
#define BUS_I2C3_FREQUENCY 400000U /* Frequency of I2C2 = 400 KHz*/
#endif /* BUS_I2C3_FREQUENCY */
/**
* @}
*/
/** @addtogroup STM32U575I_EVAL_BUS_Exported_Variables
* @{
*/
extern I2C_HandleTypeDef hbus_i2c2;
extern I2C_HandleTypeDef hbus_i2c3;
/**
* @}
*/
/** @addtogroup STM32U575I_EVAL_BUS_Exported_Functions
* @{
*/
int32_t BSP_GetTick(void);
/* Function prototypes for I2C2 */
int32_t BSP_I2C2_Init(void);
int32_t BSP_I2C2_DeInit(void);
int32_t BSP_I2C2_WriteReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C2_ReadReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C2_WriteReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C2_ReadReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C2_Recv(uint16_t DevAddr, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C2_Send(uint16_t DevAddr, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C2_IsReady(uint16_t DevAddr, uint32_t Trials);
#if (USE_HAL_I2C_REGISTER_CALLBACKS > 0)
int32_t BSP_I2C2_RegisterDefaultMspCallbacks(void);
int32_t BSP_I2C2_RegisterMspCallbacks(BSP_I2C_Cb_t *Callback);
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
__weak HAL_StatusTypeDef MX_I2C2_Init(I2C_HandleTypeDef *hI2c, uint32_t timing);
/* Function prototypes for I2C3 */
int32_t BSP_I2C3_Init(void);
int32_t BSP_I2C3_DeInit(void);
int32_t BSP_I2C3_WriteReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C3_ReadReg(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C3_WriteReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C3_ReadReg16(uint16_t DevAddr, uint16_t Reg, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C3_Recv(uint16_t DevAddr, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C3_Send(uint16_t DevAddr, uint8_t *pData, uint16_t Length);
int32_t BSP_I2C3_IsReady(uint16_t DevAddr, uint32_t Trials);
#if (USE_HAL_I2C_REGISTER_CALLBACKS > 0)
int32_t BSP_I2C3_RegisterDefaultMspCallbacks(void);
int32_t BSP_I2C3_RegisterMspCallbacks(BSP_I2C_Cb_t *Callback);
#endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
__weak HAL_StatusTypeDef MX_I2C3_Init(I2C_HandleTypeDef *hI2c, uint32_t timing);
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* STM32U575I_EVAL_BUS_H */