ESOS32
ESOSOn32-bitProcessors
Macros | Functions | Variables
esos_stm32l4_i2c.h File Reference

This file contains routines which define, configure and allow use of the I2C service on the ST Microelectronics STM32L452RE MCU. More...

#include "esos.h"
#include "esos_i2c.h"
#include "esos_stm32l4.h"
#include <libopencm3/stm32/i2c.h>
Include dependency graph for esos_stm32l4_i2c.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define CLEAR_REGISTER_BITS(reg, mask)   reg &= (~(mask))
 
#define SET_REGISTER_BITS(reg, mask)   reg |= (mask)
 
#define MAKE_I2C_WR_ADDR(bits)   bits &= 0xFFF
 
#define MAKE_I2C_RD_ADDR(bits)   bits &= 0x001
 
#define __ESOS_I2C_STM32L4_SET_WRITE_DIR()   I2C1_CR2 &= (~I2C_CR2_RD_WRN)
 
#define __ESOS_I2C_STM32L4_SET_READ_DIR()   I2C1_CR2 |= I2C_CR2_RD_WRN
 
#define __ESOS_I2C_STM32L4_SET_NUM_BYTES(x)   I2C1_CR2 = (I2C1_CR2 & ~I2C_CR2_NBYTES_MASK) | (x << I2C_CR2_NBYTES_SHIFT)
 
#define __ESOS_I2C_STM32L4_SET_ADDR7_MODE()   I2C1_CR2 &= (~I2C_CR2_ADD10)
 
#define __ESOS_I2C_STM32L4_SET_ADDR10_MODE()   I2C1_CR2 |= I2C_CR2_ADD10
 
#define __ESOS_I2C_STM32L4_SET_ADDR7(x)   I2C1_CR2 = (I2C1_CR2 & ~I2C_CR2_SADD_7BIT_MASK) | ((x & 0x7F) << I2C_CR2_SADD_7BIT_SHIFT)
 
#define __ESOS_I2C_STM32L4_SET_AUTOEND()   I2C1_CR2 |= I2C_CR2_AUTOEND
 
#define __ESOS_I2C_STM32L4_CLEAR_AUTOEND()   I2C1_CR2 &= (~I2C_CR2_AUTOEND)
 
#define __ESOS_I2C_STM32L4_SET_RELOAD()   I2C1_CR2 |= I2C_CR2_RELOAD
 
#define __ESOS_I2C_STM32L4_CLEAR_RELOAD()   I2C1_CR2 &= (~I2C_CR2_RELOAD)
 
#define __ESOS_I2C_STM32L4_IS_NACK_RECEIVED()   (I2C1_ISR & I2C_ISR_NACKF)
 
#define __ESOS_I2C_STM32L4_CLEAR_STOP_FLAG()   I2C1_ICR |= I2C_ICR_STOPCF
 
#define __ESOS_I2C_STM32L4_RESET_CR2()   I2C1_CR2 &= (uint32_t)~((uint32_t)(I2C_CR2_SADD_7BIT_MASK | I2C_CR2_HEAD10R | I2C_CR2_NBYTES_MASK | I2C_CR2_RELOAD | I2C_CR2_RD_WRN))
 
#define __ESOS_I2C_STM32L4_IS_BUSY()   (I2C1_ISR & I2C_ISR_BUSY)
 
#define __ESOS_I2C_STM32L4_IS_TX_EMPTY()   (I2C1_ISR & I2C_ISR_TXIS)
 
#define __ESOS_I2C_STM32L4_IS_RX_NOT_EMPTY()   (I2C1_ISR & I2C_ISR_RXNE)
 
#define __ESOS_I2C_HW_START()
 
#define __ESOS_I2C_HW_RSTART()
 
#define __ESOS_I2C_HW_STOP()
 
#define __ESOS_I2C_HW_PUT(byte)
 

Functions

void __esos_i2c_hw_config (uint32_t u32_i2cbps)
 
 ESOS_CHILD_TASK (__esos_hw_getI2C1, uint8_t *pu8_x, uint8_t u8_ack2Send)
 
 ESOS_CHILD_TASK (__esos_hw_writeNI2C1, uint8_t u8_addr, uint8_t *pu8_d, uint16_t u16_cnt)
 
 ESOS_CHILD_TASK (__esos_hw_readNI2C1, uint8_t u8_addr, uint8_t *pu8_d, uint16_t u16_cnt)
 

Variables

struct stTask __stChildTaskI2C __stGrandChildTaskI2C
 
uint8_t __esos_i2c_dataBytes [2]
 

Detailed Description

This file contains routines which define, configure and allow use of the I2C service on the ST Microelectronics STM32L452RE MCU.

Definition in file esos_stm32l4_i2c.h.