ChibiOS/HAL  6.1.0
hal_i2c.h File Reference

I2C Driver macros and structures. More...

#include "hal_i2c_lld.h"

Go to the source code of this file.

Macros

#define I2C_USE_MUTUAL_EXCLUSION   TRUE
 Enables the mutual exclusion APIs on the I2C bus. More...
 
#define _i2c_wakeup_isr(i2cp)
 Wakes up the waiting thread notifying no errors. More...
 
#define _i2c_wakeup_error_isr(i2cp)
 Wakes up the waiting thread notifying errors. More...
 
#define i2cMasterTransmit(i2cp, addr, txbuf, txbytes, rxbuf, rxbytes)
 Wrap i2cMasterTransmitTimeout function with TIME_INFINITE timeout. More...
 
#define i2cMasterReceive(i2cp, addr, rxbuf, rxbytes)   (i2cMasterReceiveTimeout(i2cp, addr, rxbuf, rxbytes, TIME_INFINITE))
 Wrap i2cMasterReceiveTimeout function with TIME_INFINITE timeout. More...
 
I2C bus error conditions
#define I2C_NO_ERROR   0x00
 No error. More...
 
#define I2C_BUS_ERROR   0x01
 Bus Error. More...
 
#define I2C_ARBITRATION_LOST   0x02
 Arbitration Lost. More...
 
#define I2C_ACK_FAILURE   0x04
 Acknowledge Failure. More...
 
#define I2C_OVERRUN   0x08
 Overrun/Underrun. More...
 
#define I2C_PEC_ERROR   0x10
 PEC Error in reception. More...
 
#define I2C_TIMEOUT   0x20
 Hardware timeout. More...
 
#define I2C_SMB_ALERT   0x40
 SMBus Alert. More...
 

Enumerations

Functions

void i2cInit (void)
 I2C Driver initialization. More...
 
void i2cObjectInit (I2CDriver *i2cp)
 Initializes the standard part of a I2CDriver structure. More...
 
void i2cStart (I2CDriver *i2cp, const I2CConfig *config)
 Configures and activates the I2C peripheral. More...
 
void i2cStop (I2CDriver *i2cp)
 Deactivates the I2C peripheral. More...
 
i2cflags_t i2cGetErrors (I2CDriver *i2cp)
 Returns the errors mask associated to the previous operation. More...
 
msg_t i2cMasterTransmitTimeout (I2CDriver *i2cp, i2caddr_t addr, const uint8_t *txbuf, size_t txbytes, uint8_t *rxbuf, size_t rxbytes, sysinterval_t timeout)
 Sends data via the I2C bus. More...
 
msg_t i2cMasterReceiveTimeout (I2CDriver *i2cp, i2caddr_t addr, uint8_t *rxbuf, size_t rxbytes, sysinterval_t timeout)
 Receives data from the I2C bus. More...
 
void i2cAcquireBus (I2CDriver *i2cp)
 Gains exclusive access to the I2C bus. More...
 
void i2cReleaseBus (I2CDriver *i2cp)
 Releases exclusive access to the I2C bus. More...
 

Detailed Description

I2C Driver macros and structures.

Definition in file hal_i2c.h.