You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
40 lines
1.5 KiB
/**
|
|
**************************************************************************************************
|
|
* @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]);
|
|
}
|
|
|
|
|