/** ************************************************************************************************** * @file i2c.c * @author Kerem Yollu & Edwin Koch * @date 18.07.2022 * @version 1.0 ************************************************************************************************** * @brief I2C communitation based on the Standart I2C Protocol V7 Defined by NXP/Philips : * following third Party Protocols based on I2C Bus are not going to be implemented : C-BUS SMBUS PMBUS IPMI DDC ATCA * This will also not have a I3C support for the forseable futrue. This code is generated for the stm32f4xK6 series of mcu for stm * * * **Detailed Description :** * * I2C communitation based on the Standart I2C Protocol V7 Defined by NXP/Philips : * following third Party Protocols based on I2C Bus are not going to be implemented : C-BUS SMBUS PMBUS IPMI DDC ATCA * This will also not have a I3C support for the forseable futrue. * * @todo * - 18.07.2021 : Implement the i2c.c ************************************************************************************************** */ #include "i2c.h" #define I2C_BASE ((I2C_TypeDef*)i2cBase_Addr_List[i2cHardware->channelNo]) void i2cInit(i2c_t *i2cHardware) { i2cReset(i2cHardware); RCC->APB1ENR |= i2cBus_En_bitPos[i2cHardware->channelNo]; } void i2cReset(i2c_t *i2cHardware) { RCC->APB1RSTR |= (1 << i2cBus_Rst_bitPos[i2cHardware->channelNo]); RCC->APB1RSTR &= ~(1 << i2cBus_Rst_bitPos[i2cHardware->channelNo]); }