VSF Documented
sthal_i2c.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2024 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __ST_HAL_I2C_H__
19#define __ST_HAL_I2C_H__
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#if defined(HAL_I2C_MODULE_ENABLED) && VSF_HAL_USE_I2C == ENABLED
26
27/*============================ INCLUDES ======================================*/
28
29#include "sthal_def.h"
30
31/*============================ MACROS ========================================*/
32
33#define HAL_I2C_ERROR_NONE 0x00000000U
34#define HAL_I2C_ERROR_BERR 0x00000001U
35#define HAL_I2C_ERROR_ARLO 0x00000002U
36#define HAL_I2C_ERROR_AF 0x00000004U
37#define HAL_I2C_ERROR_OVR 0x00000008U
38#define HAL_I2C_ERROR_DMA 0x00000010U
39#define HAL_I2C_ERROR_TIMEOUT 0x00000020U
40#define HAL_I2C_ERROR_SIZE 0x00000040U
41#define HAL_I2C_ERROR_DMA_PARAM 0x00000080U
42#define HAL_I2C_WRONG_START 0x00000200U
43
44#define I2C_DUTYCYCLE_2 0x00000000U
45#define I2C_DUTYCYCLE_16_9 0
46#define I2C_ADDRESSINGMODE_7BIT VSF_I2C_ADDR_7_BITS
47#define I2C_ADDRESSINGMODE_10BIT VSF_I2C_ADDR_10_BITS
48#define I2C_MEMADD_SIZE_8BIT 1
49#define I2C_MEMADD_SIZE_16BIT 2
50
51#ifdef VSF_I2C_DUAL_ADDRESS_DISABLE
52# define I2C_DUALADDRESS_DISABLE VSF_I2C_DUAL_ADDRESS_DISABLE
53#else
54# define I2C_DUALADDRESS_DISABLE 0x00000000U
55#endif
56#ifdef VSF_I2C_DUAL_ADDRESS_ENABLE
57# define I2C_DUALADDRESS_ENABLE VSF_I2C_DUAL_ADDRESS_ENABLE
58#else
59# define I2C_DUALADDRESS_ENABLE 0x00000000U
60#endif
61#ifdef VSF_I2C_GENERALCALL_DISABLE
62# define I2C_GENERALCALL_DISABLE VSF_I2C_GENERALCALL_DISABLE
63#else
64# define I2C_GENERALCALL_DISABLE 0x00000000U
65#endif
66#ifdef VSF_I2C_GENERALCALL_ENABLE
67# define I2C_GENERALCALL_ENABLE I2C_GENERALCALL_ENABLE
68#else
69# define I2C_GENERALCALL_ENABLE 0x00000000U
70#endif
71
72#ifdef VSF_I2C_NO_STRETCH_DISABLE
73# define I2C_NOSTRETCH_DISABLE VSF_I2C_NO_STRETCH_DISABLE
74#else
75# define I2C_NOSTRETCH_DISABLE 0x00000000U
76#endif
77#ifdef VSF_I2C_NO_STRETCH_ENABLE
78# define I2C_NOSTRETCH_ENABLE I2C_NO_STRETCH_ENABLE
79#else
80# define I2C_NOSTRETCH_ENABLE 0x00000000U
81#endif
82
83#ifdef VSF_DIRECTION_RECEIVE
84# define I2C_DIRECTION_RECEIVE VSF_DIRECTION_RECEIVE
85#else
86# define I2C_DIRECTION_RECEIVE 0x00000000U
87#endif
88#ifdef VSF_I2C_DIRECTION_RECEIVE
89# define I2C_DIRECTION_TRANSMIT VSF_I2C_DIRECTION_RECEIVE
90#else
91# define I2C_DIRECTION_TRANSMIT 0x00000000U
92#endif
93
94#ifdef VSF_I2C_FRAME_EXTEND_MASK
95# ifdef VSF_I2C_FIRST_FRAME
96# define I2C_FIRST_FRAME VSF_I2C_FIRST_FRAME
97# endif
98# ifdef VSF_I2C_FIRST_AND_NEXT_FRAME
99# define I2C_FIRST_AND_NEXT_FRAME 0x00000002U
100# endif
101# ifdef VSF_I2C_NEXT_FRAME
102# define I2C_NEXT_FRAME 0x00000004U
103# endif
104# ifdef VSF_I2C_FIRST_AND_LAST_FRAME
105# define I2C_FIRST_AND_LAST_FRAME 0x00000008U
106# endif
107# ifdef VSF_I2C_LAST_FRAME_NO_STOP
108# define I2C_LAST_FRAME_NO_STOP 0x00000010U
109# endif
110# ifdef VSF_I2C_LAST_FRAME
111# define I2C_LAST_FRAME 0x00000020U
112# endif
113#endif
114
115#define I2C_FIRST_FRAME 0x00000001U
116#define I2C_FIRST_AND_NEXT_FRAME 0x00000002U
117#define I2C_NEXT_FRAME 0x00000004U
118#define I2C_FIRST_AND_LAST_FRAME 0x00000008U
119#define I2C_LAST_FRAME_NO_STOP 0x00000010U
120#define I2C_LAST_FRAME 0x00000020U
121
122#define I2C_OTHER_FRAME (0x00AA0000U)
123#define I2C_OTHER_AND_LAST_FRAME (0xAA000000U)
124
125#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
126# define HAL_I2C_ERROR_INVALID_CALLBACK 0x00000100U
127#endif
128
129/*============================ MACROFIED FUNCTIONS ===========================*/
130
131// TODO: support check all instance
132#define IS_I2C_ALL_INSTANCE(INSTANCE) 1
133
134#define IS_I2C_DUTY_CYCLE(CYCLE) \
135 (((CYCLE) == I2C_DUTYCYCLE_2) || ((CYCLE) == I2C_DUTYCYCLE_16_9))
136#define IS_I2C_ADDRESSING_MODE(ADDRESS) \
137 (((ADDRESS) == I2C_ADDRESSINGMODE_7BIT) || \
138 ((ADDRESS) == I2C_ADDRESSINGMODE_10BIT))
139#define IS_I2C_DUAL_ADDRESS(ADDRESS) \
140 (((ADDRESS) == I2C_DUALADDRESS_DISABLE) || \
141 ((ADDRESS) == I2C_DUALADDRESS_ENABLE))
142#define IS_I2C_GENERAL_CALL(CALL) \
143 (((CALL) == I2C_GENERALCALL_DISABLE) || ((CALL) == I2C_GENERALCALL_ENABLE))
144#define IS_I2C_NO_STRETCH(STRETCH) \
145 (((STRETCH) == I2C_NOSTRETCH_DISABLE) || \
146 ((STRETCH) == I2C_NOSTRETCH_ENABLE))
147#define IS_I2C_MEMADD_SIZE(SIZE) \
148 (((SIZE) == I2C_MEMADD_SIZE_8BIT) || ((SIZE) == I2C_MEMADD_SIZE_16BIT))
149#define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) > 0U) && ((SPEED) <= 400000U))
150#define IS_I2C_OWN_ADDRESS1(ADDRESS1) (((ADDRESS1) & 0xFFFFFC00U) == 0U)
151#define IS_I2C_OWN_ADDRESS2(ADDRESS2) (((ADDRESS2) & 0xFFFFFF01U) == 0U)
152#define IS_I2C_TRANSFER_OPTIONS_REQUEST(REQUEST) \
153 (((REQUEST) == I2C_FIRST_FRAME) || \
154 ((REQUEST) == I2C_FIRST_AND_NEXT_FRAME) || \
155 ((REQUEST) == I2C_NEXT_FRAME) || \
156 ((REQUEST) == I2C_FIRST_AND_LAST_FRAME) || \
157 ((REQUEST) == I2C_LAST_FRAME) || ((REQUEST) == I2C_LAST_FRAME_NO_STOP) || \
158 IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST))
159
160#define IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST) \
161 (((REQUEST) == I2C_OTHER_FRAME) || ((REQUEST) == I2C_OTHER_AND_LAST_FRAME))
162
163#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
164# define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) \
165 do { \
166 (__HANDLE__)->State = HAL_I2C_STATE_RESET; \
167 (__HANDLE__)->MspInitCallback = NULL; \
168 (__HANDLE__)->MspDeInitCallback = NULL; \
169 } while (0)
170#else
171# define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) \
172 ((__HANDLE__)->State = HAL_I2C_STATE_RESET)
173#endif
174
175/*============================ TYPES =========================================*/
176
177typedef vsf_i2c_t I2C_TypeDef;
178
179typedef enum {
180 HAL_I2C_STATE_RESET = 0x00U,
181 HAL_I2C_STATE_READY = 0x20U,
182 HAL_I2C_STATE_BUSY = 0x24U,
183 HAL_I2C_STATE_BUSY_TX = 0x21U,
184 HAL_I2C_STATE_BUSY_RX = 0x22U,
185 HAL_I2C_STATE_LISTEN = 0x28U,
186 HAL_I2C_STATE_BUSY_TX_LISTEN = 0x29U,
187 HAL_I2C_STATE_BUSY_RX_LISTEN = 0x2AU,
188 HAL_I2C_STATE_ABORT = 0x60U,
189 HAL_I2C_STATE_TIMEOUT = 0xA0U,
190 HAL_I2C_STATE_ERROR = 0xE0U,
191} HAL_I2C_StateTypeDef;
192
193typedef enum {
194 HAL_I2C_MODE_NONE = 0x00U,
195 HAL_I2C_MODE_MASTER = 0x10U,
196 HAL_I2C_MODE_SLAVE = 0x20U,
197 HAL_I2C_MODE_MEM = 0x40U,
198} HAL_I2C_ModeTypeDef;
199
200typedef struct {
201 uint32_t ClockSpeed;
202 uint32_t DutyCycle;
203 uint32_t OwnAddress1;
204 uint32_t AddressingMode;
205 uint32_t DualAddressMode;
206 uint32_t OwnAddress2;
207 uint32_t GeneralCallMode;
208 uint32_t NoStretchMode;
209} I2C_InitTypeDef;
210
211#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
212typedef struct __I2C_HandleTypeDef {
213#else
214typedef struct {
215#endif
216 I2C_TypeDef *Instance;
217 I2C_InitTypeDef Init;
218 uint8_t *pBuffPtr;
219 uint16_t XferSize;
220 volatile uint16_t XferCount;
221 volatile uint32_t XferOptions;
222 volatile uint32_t PreviousState;
223 DMA_HandleTypeDef *hdmatx;
224 DMA_HandleTypeDef *hdmarx;
225 HAL_LockTypeDef Lock;
226 volatile HAL_I2C_StateTypeDef State;
227 volatile HAL_I2C_ModeTypeDef Mode;
228 volatile uint32_t ErrorCode;
229 volatile uint32_t Devaddress;
230 volatile uint32_t Memaddress;
231 volatile uint32_t MemaddSize;
232 volatile uint32_t EventCount;
233
234#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
235 void (*MasterTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
236 void (*MasterRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
237 void (*SlaveTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
238 void (*SlaveRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
239 void (*ListenCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
240 void (*MemTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
241 void (*MemRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
242 void (*ErrorCallback)(struct __I2C_HandleTypeDef *hi2c);
243 void (*AbortCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
244 void (*AddrCallback)(struct __I2C_HandleTypeDef *hi2c,
245 uint8_t TransferDirection, uint16_t AddrMatchCode);
246 void (*MspInitCallback)(struct __I2C_HandleTypeDef *hi2c);
247 void (*MspDeInitCallback)(struct __I2C_HandleTypeDef *hi2c);
248#endif
249} I2C_HandleTypeDef;
250
251#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
252typedef enum {
253 HAL_I2C_MASTER_TX_COMPLETE_CB_ID = 0x00U,
254 HAL_I2C_MASTER_RX_COMPLETE_CB_ID = 0x01U,
255 HAL_I2C_SLAVE_TX_COMPLETE_CB_ID = 0x02U,
256 HAL_I2C_SLAVE_RX_COMPLETE_CB_ID = 0x03U,
257 HAL_I2C_LISTEN_COMPLETE_CB_ID = 0x04U,
258 HAL_I2C_MEM_TX_COMPLETE_CB_ID = 0x05U,
259 HAL_I2C_MEM_RX_COMPLETE_CB_ID = 0x06U,
260 HAL_I2C_ERROR_CB_ID = 0x07U,
261 HAL_I2C_ABORT_CB_ID = 0x08U,
262
263 HAL_I2C_MSPINIT_CB_ID = 0x09U,
264 HAL_I2C_MSPDEINIT_CB_ID = 0x0AU,
265} HAL_I2C_CallbackIDTypeDef;
266#endif
267
268/*============================ GLOBAL VARIABLES ==============================*/
269/*============================ LOCAL VARIABLES ===============================*/
270/*============================ PROTOTYPES ====================================*/
271
272HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c);
273HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c);
274void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c);
275void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c);
276
277#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
278typedef void (*pI2C_CallbackTypeDef)(I2C_HandleTypeDef *hi2c);
279typedef void (*pI2C_AddrCallbackTypeDef)(I2C_HandleTypeDef *hi2c,
280 uint8_t TransferDirection,
281 uint16_t AddrMatchCode);
282HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c,
283 HAL_I2C_CallbackIDTypeDef CallbackID,
284 pI2C_CallbackTypeDef pCallback);
285HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(
286 I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID);
287
288HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(
289 I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pCallback);
290HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c);
291#endif
292
293HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c,
294 uint16_t DevAddress, uint8_t *pData,
295 uint16_t Size, uint32_t Timeout);
296HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c,
297 uint16_t DevAddress, uint8_t *pData,
298 uint16_t Size, uint32_t Timeout);
299HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c,
300 uint8_t *pData, uint16_t Size,
301 uint32_t Timeout);
302HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData,
303 uint16_t Size, uint32_t Timeout);
304HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c,
305 uint16_t DevAddress, uint16_t MemAddress,
306 uint16_t MemAddSize, uint8_t *pData,
307 uint16_t Size, uint32_t Timeout);
308HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
309 uint16_t MemAddress, uint16_t MemAddSize,
310 uint8_t *pData, uint16_t Size,
311 uint32_t Timeout);
312HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c,
313 uint16_t DevAddress, uint32_t Trials,
314 uint32_t Timeout);
315HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c,
316 uint16_t DevAddress,
317 uint8_t *pData, uint16_t Size);
318HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c,
319 uint16_t DevAddress, uint8_t *pData,
320 uint16_t Size);
321HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c,
322 uint8_t *pData, uint16_t Size);
323HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c,
324 uint8_t *pData, uint16_t Size);
325HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c,
326 uint16_t DevAddress, uint16_t MemAddress,
327 uint16_t MemAddSize, uint8_t *pData,
328 uint16_t Size);
329HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c,
330 uint16_t DevAddress, uint16_t MemAddress,
331 uint16_t MemAddSize, uint8_t *pData,
332 uint16_t Size);
334 uint16_t DevAddress,
335 uint8_t *pData, uint16_t Size,
336 uint32_t XferOptions);
338 uint16_t DevAddress,
339 uint8_t *pData, uint16_t Size,
340 uint32_t XferOptions);
342 uint8_t *pData, uint16_t Size,
343 uint32_t XferOptions);
344HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c,
345 uint8_t *pData, uint16_t Size,
346 uint32_t XferOptions);
347HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c);
348HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c);
349HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c,
350 uint16_t DevAddress);
351HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c,
352 uint16_t DevAddress,
353 uint8_t *pData, uint16_t Size);
354HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c,
355 uint16_t DevAddress,
356 uint8_t *pData, uint16_t Size);
357HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c,
358 uint8_t *pData, uint16_t Size);
359HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c,
360 uint8_t *pData, uint16_t Size);
361HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c,
362 uint16_t DevAddress,
363 uint16_t MemAddress,
364 uint16_t MemAddSize, uint8_t *pData,
365 uint16_t Size);
366HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c,
367 uint16_t DevAddress, uint16_t MemAddress,
368 uint16_t MemAddSize, uint8_t *pData,
369 uint16_t Size);
371 uint16_t DevAddress,
372 uint8_t *pData, uint16_t Size,
373 uint32_t XferOptions);
375 uint16_t DevAddress,
376 uint8_t *pData, uint16_t Size,
377 uint32_t XferOptions);
379 uint8_t *pData, uint16_t Size,
380 uint32_t XferOptions);
382 uint8_t *pData, uint16_t Size,
383 uint32_t XferOptions);
384void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c);
385void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c);
386void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c);
387void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c);
388void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c);
389void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c);
390void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection,
391 uint16_t AddrMatchCode);
392void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c);
393void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c);
394void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c);
395void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c);
396void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c);
397HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c);
398HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c);
399uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c);
400HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c,
401 uint32_t AnalogFilter);
403 uint32_t DigitalFilter);
404
405#endif /* defined(HAL_I2C_MODULE_ENABLED) && VSF_HAL_USE_I2C == ENABLED */
406
407#ifdef __cplusplus
408}
409#endif
410
411#endif
vsf_err_t(* Init)(vsf_adc_cfg_t *pCfg)
Definition adc_interface.h:38
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
HAL_StatusTypeDef
Definition sthal_def.h:61
HAL_LockTypeDef
Definition sthal_def.h:68
HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1262
void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1735
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1428
HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1527
HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1763
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1341
void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:113
HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1209
HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1370
HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1165
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:73
HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter)
Definition sthal_i2c.c:1775
HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1466
void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode)
Definition sthal_i2c.c:103
HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter)
Definition sthal_i2c.c:1797
HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1314
HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1144
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:134
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:85
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1412
uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1769
HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1232
HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1135
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1322
void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1741
HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1494
void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:91
HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1396
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:120
HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1291
HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1299
HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1126
HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1360
HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:991
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:79
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:140
HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1577
HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1186
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1306
HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1093
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:67
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:127
HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1380
HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
Definition sthal_i2c.c:1712
HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1747
HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1664
HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1420
HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout)
Definition sthal_i2c.c:1630
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:97
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1447
HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1687
I2C instance structure for multi-class support.
Definition vsf_template_i2c.h:976
struct @852 Size
Generated from commit: vsfteam/vsf@0c4049f