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.