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/*============================ INCLUDES ======================================*/
26
27#include "sthal_def.h"
28
29/*============================ MACROS ========================================*/
30
31#define HAL_I2C_ERROR_NONE 0x00000000U
32#define HAL_I2C_ERROR_BERR 0x00000001U
33#define HAL_I2C_ERROR_ARLO 0x00000002U
34#define HAL_I2C_ERROR_AF 0x00000004U
35#define HAL_I2C_ERROR_OVR 0x00000008U
36#define HAL_I2C_ERROR_DMA 0x00000010U
37#define HAL_I2C_ERROR_TIMEOUT 0x00000020U
38#define HAL_I2C_ERROR_SIZE 0x00000040U
39#define HAL_I2C_ERROR_DMA_PARAM 0x00000080U
40#define HAL_I2C_WRONG_START 0x00000200U
41
42#define I2C_DUTYCYCLE_2 0x00000000U
43#define I2C_DUTYCYCLE_16_9 0
44#define I2C_ADDRESSINGMODE_7BIT VSF_I2C_ADDR_7_BITS
45#define I2C_ADDRESSINGMODE_10BIT VSF_I2C_ADDR_10_BITS
46#define I2C_MEMADD_SIZE_8BIT 1
47#define I2C_MEMADD_SIZE_16BIT 2
48
49#ifdef VSF_I2C_DUAL_ADDRESS_DISABLE
50# define I2C_DUALADDRESS_DISABLE VSF_I2C_DUAL_ADDRESS_DISABLE
51#else
52# define I2C_DUALADDRESS_DISABLE 0x00000000U
53#endif
54#ifdef VSF_I2C_DUAL_ADDRESS_ENABLE
55# define I2C_DUALADDRESS_ENABLE VSF_I2C_DUAL_ADDRESS_ENABLE
56#else
57# define I2C_DUALADDRESS_ENABLE 0x00000000U
58#endif
59#ifdef VSF_I2C_GENERALCALL_DISABLE
60# define I2C_GENERALCALL_DISABLE VSF_I2C_GENERALCALL_DISABLE
61#else
62# define I2C_GENERALCALL_DISABLE 0x00000000U
63#endif
64#ifdef VSF_I2C_GENERALCALL_ENABLE
65# define I2C_GENERALCALL_ENABLE I2C_GENERALCALL_ENABLE
66#else
67# define I2C_GENERALCALL_ENABLE 0x00000000U
68#endif
69
70#ifdef VSF_I2C_NO_STRETCH_DISABLE
71# define I2C_NOSTRETCH_DISABLE VSF_I2C_NO_STRETCH_DISABLE
72#else
73# define I2C_NOSTRETCH_DISABLE 0x00000000U
74#endif
75#ifdef VSF_I2C_NO_STRETCH_ENABLE
76# define I2C_NOSTRETCH_ENABLE I2C_NO_STRETCH_ENABLE
77#else
78# define I2C_NOSTRETCH_ENABLE 0x00000000U
79#endif
80
81#ifdef VSF_DIRECTION_RECEIVE
82# define I2C_DIRECTION_RECEIVE VSF_DIRECTION_RECEIVE
83#else
84# define I2C_DIRECTION_RECEIVE 0x00000000U
85#endif
86#ifdef VSF_I2C_DIRECTION_RECEIVE
87# define I2C_DIRECTION_TRANSMIT VSF_I2C_DIRECTION_RECEIVE
88#else
89# define I2C_DIRECTION_TRANSMIT 0x00000000U
90#endif
91
92#ifdef VSF_I2C_FRAME_EXTEND_MASK
93# ifdef VSF_I2C_FIRST_FRAME
94# define I2C_FIRST_FRAME VSF_I2C_FIRST_FRAME
95# endif
96# ifdef VSF_I2C_FIRST_AND_NEXT_FRAME
97# define I2C_FIRST_AND_NEXT_FRAME 0x00000002U
98# endif
99# ifdef VSF_I2C_NEXT_FRAME
100# define I2C_NEXT_FRAME 0x00000004U
101# endif
102# ifdef VSF_I2C_FIRST_AND_LAST_FRAME
103# define I2C_FIRST_AND_LAST_FRAME 0x00000008U
104# endif
105# ifdef VSF_I2C_LAST_FRAME_NO_STOP
106# define I2C_LAST_FRAME_NO_STOP 0x00000010U
107# endif
108# ifdef VSF_I2C_LAST_FRAME
109# define I2C_LAST_FRAME 0x00000020U
110# endif
111#endif
112
113#define I2C_FIRST_FRAME 0x00000001U
114#define I2C_FIRST_AND_NEXT_FRAME 0x00000002U
115#define I2C_NEXT_FRAME 0x00000004U
116#define I2C_FIRST_AND_LAST_FRAME 0x00000008U
117#define I2C_LAST_FRAME_NO_STOP 0x00000010U
118#define I2C_LAST_FRAME 0x00000020U
119
120#define I2C_OTHER_FRAME (0x00AA0000U)
121#define I2C_OTHER_AND_LAST_FRAME (0xAA000000U)
122
123#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
124# define HAL_I2C_ERROR_INVALID_CALLBACK 0x00000100U
125#endif
126
127/*============================ MACROFIED FUNCTIONS ===========================*/
128
129// TODO: support check all instance
130#define IS_I2C_ALL_INSTANCE(INSTANCE) 1
131
132#define IS_I2C_DUTY_CYCLE(CYCLE) \
133 (((CYCLE) == I2C_DUTYCYCLE_2) || ((CYCLE) == I2C_DUTYCYCLE_16_9))
134#define IS_I2C_ADDRESSING_MODE(ADDRESS) \
135 (((ADDRESS) == I2C_ADDRESSINGMODE_7BIT) || \
136 ((ADDRESS) == I2C_ADDRESSINGMODE_10BIT))
137#define IS_I2C_DUAL_ADDRESS(ADDRESS) \
138 (((ADDRESS) == I2C_DUALADDRESS_DISABLE) || \
139 ((ADDRESS) == I2C_DUALADDRESS_ENABLE))
140#define IS_I2C_GENERAL_CALL(CALL) \
141 (((CALL) == I2C_GENERALCALL_DISABLE) || ((CALL) == I2C_GENERALCALL_ENABLE))
142#define IS_I2C_NO_STRETCH(STRETCH) \
143 (((STRETCH) == I2C_NOSTRETCH_DISABLE) || \
144 ((STRETCH) == I2C_NOSTRETCH_ENABLE))
145#define IS_I2C_MEMADD_SIZE(SIZE) \
146 (((SIZE) == I2C_MEMADD_SIZE_8BIT) || ((SIZE) == I2C_MEMADD_SIZE_16BIT))
147#define IS_I2C_CLOCK_SPEED(SPEED) (((SPEED) > 0U) && ((SPEED) <= 400000U))
148#define IS_I2C_OWN_ADDRESS1(ADDRESS1) (((ADDRESS1) & 0xFFFFFC00U) == 0U)
149#define IS_I2C_OWN_ADDRESS2(ADDRESS2) (((ADDRESS2) & 0xFFFFFF01U) == 0U)
150#define IS_I2C_TRANSFER_OPTIONS_REQUEST(REQUEST) \
151 (((REQUEST) == I2C_FIRST_FRAME) || \
152 ((REQUEST) == I2C_FIRST_AND_NEXT_FRAME) || \
153 ((REQUEST) == I2C_NEXT_FRAME) || \
154 ((REQUEST) == I2C_FIRST_AND_LAST_FRAME) || \
155 ((REQUEST) == I2C_LAST_FRAME) || ((REQUEST) == I2C_LAST_FRAME_NO_STOP) || \
156 IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST))
157
158#define IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(REQUEST) \
159 (((REQUEST) == I2C_OTHER_FRAME) || ((REQUEST) == I2C_OTHER_AND_LAST_FRAME))
160
161#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
162# define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) \
163 do { \
164 (__HANDLE__)->State = HAL_I2C_STATE_RESET; \
165 (__HANDLE__)->MspInitCallback = NULL; \
166 (__HANDLE__)->MspDeInitCallback = NULL; \
167 } while (0)
168#else
169# define __HAL_I2C_RESET_HANDLE_STATE(__HANDLE__) \
170 ((__HANDLE__)->State = HAL_I2C_STATE_RESET)
171#endif
172
173/*============================ TYPES =========================================*/
174
176
177typedef enum {
190
191typedef enum {
197
198typedef struct {
208
209#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
210typedef struct __I2C_HandleTypeDef {
211#else
212typedef struct {
213#endif
231
232#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
233 void (*MasterTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
234 void (*MasterRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
235 void (*SlaveTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
236 void (*SlaveRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
237 void (*ListenCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
238 void (*MemTxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
239 void (*MemRxCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
240 void (*ErrorCallback)(struct __I2C_HandleTypeDef *hi2c);
241 void (*AbortCpltCallback)(struct __I2C_HandleTypeDef *hi2c);
242 void (*AddrCallback)(struct __I2C_HandleTypeDef *hi2c,
243 uint8_t TransferDirection, uint16_t AddrMatchCode);
244 void (*MspInitCallback)(struct __I2C_HandleTypeDef *hi2c);
245 void (*MspDeInitCallback)(struct __I2C_HandleTypeDef *hi2c);
246#endif
248
249#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
250typedef enum {
251 HAL_I2C_MASTER_TX_COMPLETE_CB_ID = 0x00U,
252 HAL_I2C_MASTER_RX_COMPLETE_CB_ID = 0x01U,
253 HAL_I2C_SLAVE_TX_COMPLETE_CB_ID = 0x02U,
254 HAL_I2C_SLAVE_RX_COMPLETE_CB_ID = 0x03U,
255 HAL_I2C_LISTEN_COMPLETE_CB_ID = 0x04U,
256 HAL_I2C_MEM_TX_COMPLETE_CB_ID = 0x05U,
257 HAL_I2C_MEM_RX_COMPLETE_CB_ID = 0x06U,
258 HAL_I2C_ERROR_CB_ID = 0x07U,
259 HAL_I2C_ABORT_CB_ID = 0x08U,
260
261 HAL_I2C_MSPINIT_CB_ID = 0x09U,
262 HAL_I2C_MSPDEINIT_CB_ID = 0x0AU,
263} HAL_I2C_CallbackIDTypeDef;
264#endif
265
266/*============================ GLOBAL VARIABLES ==============================*/
267/*============================ LOCAL VARIABLES ===============================*/
268/*============================ PROTOTYPES ====================================*/
269
274
275#if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
276typedef void (*pI2C_CallbackTypeDef)(I2C_HandleTypeDef *hi2c);
277typedef void (*pI2C_AddrCallbackTypeDef)(I2C_HandleTypeDef *hi2c,
278 uint8_t TransferDirection,
279 uint16_t AddrMatchCode);
280HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c,
281 HAL_I2C_CallbackIDTypeDef CallbackID,
282 pI2C_CallbackTypeDef pCallback);
283HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(
284 I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef CallbackID);
285
286HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(
287 I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pCallback);
288HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c);
289#endif
290
292 uint16_t DevAddress, uint8_t *pData,
293 uint16_t Size, uint32_t Timeout);
295 uint16_t DevAddress, uint8_t *pData,
296 uint16_t Size, uint32_t Timeout);
298 uint8_t *pData, uint16_t Size,
299 uint32_t Timeout);
301 uint16_t Size, uint32_t Timeout);
303 uint16_t DevAddress, uint16_t MemAddress,
304 uint16_t MemAddSize, uint8_t *pData,
305 uint16_t Size, uint32_t Timeout);
307 uint16_t MemAddress, uint16_t MemAddSize,
308 uint8_t *pData, uint16_t Size,
309 uint32_t Timeout);
311 uint16_t DevAddress, uint32_t Trials,
312 uint32_t Timeout);
314 uint16_t DevAddress,
315 uint8_t *pData, uint16_t Size);
317 uint16_t DevAddress, uint8_t *pData,
318 uint16_t Size);
320 uint8_t *pData, uint16_t Size);
322 uint8_t *pData, uint16_t Size);
324 uint16_t DevAddress, uint16_t MemAddress,
325 uint16_t MemAddSize, uint8_t *pData,
326 uint16_t Size);
328 uint16_t DevAddress, uint16_t MemAddress,
329 uint16_t MemAddSize, uint8_t *pData,
330 uint16_t Size);
332 uint16_t DevAddress,
333 uint8_t *pData, uint16_t Size,
334 uint32_t XferOptions);
336 uint16_t DevAddress,
337 uint8_t *pData, uint16_t Size,
338 uint32_t XferOptions);
340 uint8_t *pData, uint16_t Size,
341 uint32_t XferOptions);
343 uint8_t *pData, uint16_t Size,
344 uint32_t XferOptions);
348 uint16_t DevAddress);
350 uint16_t DevAddress,
351 uint8_t *pData, uint16_t Size);
353 uint16_t DevAddress,
354 uint8_t *pData, uint16_t Size);
356 uint8_t *pData, uint16_t Size);
358 uint8_t *pData, uint16_t Size);
360 uint16_t DevAddress,
361 uint16_t MemAddress,
362 uint16_t MemAddSize, uint8_t *pData,
363 uint16_t Size);
365 uint16_t DevAddress, uint16_t MemAddress,
366 uint16_t MemAddSize, uint8_t *pData,
367 uint16_t Size);
369 uint16_t DevAddress,
370 uint8_t *pData, uint16_t Size,
371 uint32_t XferOptions);
373 uint16_t DevAddress,
374 uint8_t *pData, uint16_t Size,
375 uint32_t XferOptions);
377 uint8_t *pData, uint16_t Size,
378 uint32_t XferOptions);
380 uint8_t *pData, uint16_t Size,
381 uint32_t XferOptions);
388void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection,
389 uint16_t AddrMatchCode);
399 uint32_t AnalogFilter);
401 uint32_t DigitalFilter);
402
403#ifdef __cplusplus
404}
405#endif
406
407#endif
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:1260
void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1734
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1426
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:1525
HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1762
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1339
void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:111
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:1207
HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1368
HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1163
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:71
HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter)
Definition sthal_i2c.c:1774
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:1464
void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode)
Definition sthal_i2c.c:101
HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter)
Definition sthal_i2c.c:1796
HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1312
HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1142
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:132
void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:83
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1410
uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1768
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:1230
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:1133
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1320
void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1740
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:1492
void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:89
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:1394
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:118
HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1289
HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Definition sthal_i2c.c:1297
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:1124
HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1358
HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:989
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:77
void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:138
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:1575
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:1184
HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1304
HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1091
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:65
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:125
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:1378
HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
Definition sthal_i2c.c:1711
HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1746
HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1663
HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
Definition sthal_i2c.c:1418
HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Trials, uint32_t Timeout)
Definition sthal_i2c.c:1629
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:95
HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions)
Definition sthal_i2c.c:1445
HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
Definition sthal_i2c.c:1686
HAL_I2C_ModeTypeDef
Definition sthal_i2c.h:191
@ HAL_I2C_MODE_MASTER
Definition sthal_i2c.h:193
@ HAL_I2C_MODE_MEM
Definition sthal_i2c.h:195
@ HAL_I2C_MODE_SLAVE
Definition sthal_i2c.h:194
@ HAL_I2C_MODE_NONE
Definition sthal_i2c.h:192
vsf_i2c_t I2C_TypeDef
Definition sthal_i2c.h:175
HAL_I2C_StateTypeDef
Definition sthal_i2c.h:177
@ HAL_I2C_STATE_BUSY
Definition sthal_i2c.h:180
@ HAL_I2C_STATE_LISTEN
Definition sthal_i2c.h:183
@ HAL_I2C_STATE_BUSY_TX_LISTEN
Definition sthal_i2c.h:184
@ HAL_I2C_STATE_ABORT
Definition sthal_i2c.h:186
@ HAL_I2C_STATE_TIMEOUT
Definition sthal_i2c.h:187
@ HAL_I2C_STATE_BUSY_RX
Definition sthal_i2c.h:182
@ HAL_I2C_STATE_BUSY_RX_LISTEN
Definition sthal_i2c.h:185
@ HAL_I2C_STATE_RESET
Definition sthal_i2c.h:178
@ HAL_I2C_STATE_BUSY_TX
Definition sthal_i2c.h:181
@ HAL_I2C_STATE_READY
Definition sthal_i2c.h:179
@ HAL_I2C_STATE_ERROR
Definition sthal_i2c.h:188
Definition sthal_dma.h:103
Definition sthal_i2c.h:212
volatile uint32_t EventCount
Definition sthal_i2c.h:230
volatile uint16_t XferCount
Definition sthal_i2c.h:218
uint16_t XferSize
Definition sthal_i2c.h:217
uint8_t * pBuffPtr
Definition sthal_i2c.h:216
volatile uint32_t Devaddress
Definition sthal_i2c.h:227
volatile HAL_I2C_StateTypeDef State
Definition sthal_i2c.h:224
I2C_InitTypeDef Init
Definition sthal_i2c.h:215
volatile HAL_I2C_ModeTypeDef Mode
Definition sthal_i2c.h:225
volatile uint32_t MemaddSize
Definition sthal_i2c.h:229
volatile uint32_t XferOptions
Definition sthal_i2c.h:219
DMA_HandleTypeDef * hdmarx
Definition sthal_i2c.h:222
I2C_TypeDef * Instance
Definition sthal_i2c.h:214
DMA_HandleTypeDef * hdmatx
Definition sthal_i2c.h:221
volatile uint32_t Memaddress
Definition sthal_i2c.h:228
HAL_LockTypeDef Lock
Definition sthal_i2c.h:223
volatile uint32_t ErrorCode
Definition sthal_i2c.h:226
volatile uint32_t PreviousState
Definition sthal_i2c.h:220
Definition sthal_i2c.h:198
uint32_t GeneralCallMode
Definition sthal_i2c.h:205
uint32_t NoStretchMode
Definition sthal_i2c.h:206
uint32_t ClockSpeed
Definition sthal_i2c.h:199
uint32_t AddressingMode
Definition sthal_i2c.h:202
uint32_t OwnAddress2
Definition sthal_i2c.h:204
uint32_t DutyCycle
Definition sthal_i2c.h:200
uint32_t OwnAddress1
Definition sthal_i2c.h:201
uint32_t DualAddressMode
Definition sthal_i2c.h:203
I2C instance structure for multi-class support.
Definition vsf_template_i2c.h:976
struct @831 Size
Generated from commit: vsfteam/vsf@2b286be