37#define PERIPH_I2C_NEED_READ_REG
39#define PERIPH_I2C_NEED_WRITE_REG
41#define PERIPH_I2C_NEED_READ_REGS
42#if defined(CPU_FAM_STM32F1) || defined(CPU_FAM_STM32F2) || \
43 defined(CPU_FAM_STM32L1) || defined(CPU_FAM_STM32F4) || \
44 defined(CPU_FAM_STM32MP1)
46#define PERIPH_I2C_NEED_WRITE_REGS
55#define HAVE_I2C_SPEED_T
57#if defined(CPU_FAM_STM32F1) || defined(CPU_FAM_STM32F2) || \
58 defined(CPU_FAM_STM32F4) || defined(CPU_FAM_STM32L1) || \
59 defined(CPU_FAM_STM32MP1)
64#if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F3) || \
65 defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32L0) || \
66 defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32WB) || \
67 defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32G0) || \
68 defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32U5) || \
69 defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0)
84#ifndef CPU_FAM_STM32F1
90#if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F3) || \
91 defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32G0) || \
92 defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L4) || \
93 defined(CPU_FAM_STM32L5) || defined(CPU_FAM_STM32WB) || \
94 defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WL) || \
95 defined(CPU_FAM_STM32C0)
98#if defined(CPU_FAM_STM32F1) || defined(CPU_FAM_STM32F2) || \
99 defined(CPU_FAM_STM32F4) || defined(CPU_FAM_STM32L1) || \
100 defined(CPU_FAM_STM32MP1)
106#if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F3) || \
107 defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32L0) || \
108 defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32L5) || \
109 defined(CPU_FAM_STM32G0) || defined(CPU_FAM_STM32G4) || \
110 defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WB) || \
111 defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0)
136static const i2c_timing_param_t timing_params[] = {
164#if defined(CPU_FAM_STM32F0) || defined(CPU_FAM_STM32F3) || \
165 defined(CPU_FAM_STM32F7) || defined(CPU_FAM_STM32G0) || \
166 defined(CPU_FAM_STM32G4) || defined(CPU_FAM_STM32L0) || \
167 defined(CPU_FAM_STM32L4) || defined(CPU_FAM_STM32L5) || \
168 defined(CPU_FAM_STM32U5) || defined(CPU_FAM_STM32WB) || \
169 defined(CPU_FAM_STM32WL) || defined(CPU_FAM_STM32C0)
174#define PERIPH_I2C_MAX_BYTES_PER_FRAME (256U)
@ I2C_SPEED_NORMAL
normal mode: ~100 kbit/s
@ I2C_SPEED_FAST_PLUS
fast plus mode: ~1000 kbit/s
@ I2C_SPEED_LOW
low speed mode: ~10 kbit/s
@ I2C_SPEED_FAST
fast mode: ~400 kbit/s
GPIO CPU definitions for the STM32 family.
gpio_af_t
Override alternative GPIO mode options.
I2C configuration structure.
gpio_af_t scl_af
scl pin alternate function value
gpio_af_t sda_af
sda pin alternate function value
IRQn_Type irqn
I2C event interrupt number.
uint32_t rcc_mask
bit in clock enable register