18 #if defined(USE_FULL_LL_DRIVER)
24 #ifdef USE_FULL_ASSERT
25 #include "stm32_assert.h"
27 #define assert_param(expr) ((void)0U)
34 #if defined (I2C1) || defined (I2C2) || defined (I2C3)
48 #define IS_LL_I2C_PERIPHERAL_MODE(__VALUE__) (((__VALUE__) == LL_I2C_MODE_I2C) || \
49 ((__VALUE__) == LL_I2C_MODE_SMBUS_HOST) || \
50 ((__VALUE__) == LL_I2C_MODE_SMBUS_DEVICE) || \
51 ((__VALUE__) == LL_I2C_MODE_SMBUS_DEVICE_ARP))
53 #define IS_LL_I2C_CLOCK_SPEED(__VALUE__) (((__VALUE__) > 0U) && ((__VALUE__) <= LL_I2C_MAX_SPEED_FAST))
55 #define IS_LL_I2C_DUTY_CYCLE(__VALUE__) (((__VALUE__) == LL_I2C_DUTYCYCLE_2) || \
56 ((__VALUE__) == LL_I2C_DUTYCYCLE_16_9))
58 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
59 #define IS_LL_I2C_ANALOG_FILTER(__VALUE__) (((__VALUE__) == LL_I2C_ANALOGFILTER_ENABLE) || \
60 ((__VALUE__) == LL_I2C_ANALOGFILTER_DISABLE))
62 #define IS_LL_I2C_DIGITAL_FILTER(__VALUE__) ((__VALUE__) <= 0x0000000FU)
65 #define IS_LL_I2C_OWN_ADDRESS1(__VALUE__) ((__VALUE__) <= 0x000003FFU)
67 #define IS_LL_I2C_TYPE_ACKNOWLEDGE(__VALUE__) (((__VALUE__) == LL_I2C_ACK) || \
68 ((__VALUE__) == LL_I2C_NACK))
70 #define IS_LL_I2C_OWN_ADDRSIZE(__VALUE__) (((__VALUE__) == LL_I2C_OWNADDRESS1_7BIT) || \
71 ((__VALUE__) == LL_I2C_OWNADDRESS1_10BIT))
96 ErrorStatus status = SUCCESS;
99 assert_param(IS_I2C_ALL_INSTANCE(I2Cx));
109 else if (I2Cx == I2C2)
119 else if (I2Cx == I2C3)
149 assert_param(IS_I2C_ALL_INSTANCE(I2Cx));
152 assert_param(IS_LL_I2C_PERIPHERAL_MODE(I2C_InitStruct->
PeripheralMode));
153 assert_param(IS_LL_I2C_CLOCK_SPEED(I2C_InitStruct->
ClockSpeed));
154 assert_param(IS_LL_I2C_DUTY_CYCLE(I2C_InitStruct->
DutyCycle));
155 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
156 assert_param(IS_LL_I2C_ANALOG_FILTER(I2C_InitStruct->
AnalogFilter));
157 assert_param(IS_LL_I2C_DIGITAL_FILTER(I2C_InitStruct->
DigitalFilter));
159 assert_param(IS_LL_I2C_OWN_ADDRESS1(I2C_InitStruct->
OwnAddress1));
160 assert_param(IS_LL_I2C_TYPE_ACKNOWLEDGE(I2C_InitStruct->
TypeAcknowledge));
161 assert_param(IS_LL_I2C_OWN_ADDRSIZE(I2C_InitStruct->
OwnAddrSize));
169 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
222 I2C_InitStruct->
DutyCycle = LL_I2C_DUTYCYCLE_2;
223 #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
224 I2C_InitStruct->
AnalogFilter = LL_I2C_ANALOGFILTER_ENABLE;
229 I2C_InitStruct->
OwnAddrSize = LL_I2C_OWNADDRESS1_7BIT;
__STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
Force APB1 peripherals reset. @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset APB1RSTR TIM3RST LL_A...
__STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
Release APB1 peripherals reset. @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset APB1RSTR TIM3RST ...
__STATIC_INLINE void LL_I2C_Disable(I2C_TypeDef *I2Cx)
Disable I2C peripheral (PE = 0). @rmtoll CR1 PE LL_I2C_Disable.
__STATIC_INLINE void LL_I2C_ConfigFilters(I2C_TypeDef *I2Cx, uint32_t AnalogFilter, uint32_t DigitalFilter)
Configure Noise Filters (Analog and Digital).
__STATIC_INLINE void LL_I2C_ConfigSpeed(I2C_TypeDef *I2Cx, uint32_t PeriphClock, uint32_t ClockSpeed, uint32_t DutyCycle)
Configure the SCL speed.
__STATIC_INLINE void LL_I2C_Enable(I2C_TypeDef *I2Cx)
Enable I2C peripheral (PE = 1). @rmtoll CR1 PE LL_I2C_Enable.
__STATIC_INLINE void LL_I2C_SetMode(I2C_TypeDef *I2Cx, uint32_t PeripheralMode)
Configure peripheral mode.
__STATIC_INLINE void LL_I2C_SetOwnAddress1(I2C_TypeDef *I2Cx, uint32_t OwnAddress1, uint32_t OwnAddrSize)
Set the Own Address1. @rmtoll OAR1 ADD0 LL_I2C_SetOwnAddress1 OAR1 ADD1_7 LL_I2C_SetOwnAddress1 OAR...
__STATIC_INLINE void LL_I2C_AcknowledgeNextData(I2C_TypeDef *I2Cx, uint32_t TypeAcknowledge)
Prepare the generation of a ACKnowledge or Non ACKnowledge condition after the address receive match ...
uint32_t LL_I2C_DeInit(I2C_TypeDef *I2Cx)
De-initialize the I2C registers to their default reset values.
void LL_I2C_StructInit(LL_I2C_InitTypeDef *I2C_InitStruct)
Set each LL_I2C_InitTypeDef field to default value.
uint32_t LL_I2C_Init(I2C_TypeDef *I2Cx, LL_I2C_InitTypeDef *I2C_InitStruct)
Initialize the I2C registers according to the specified parameters in I2C_InitStruct.
RCC Clocks Frequency Structure.
void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks)
Return the frequencies of different on chip clocks; System, AHB, APB1 and APB2 buses clocks.
Header file of BUS LL module.
Header file of I2C LL module.
Header file of RCC LL module.