cancel
Showing results for 
Search instead for 
Did you mean: 

Support for ''repeated start'' in STM32 HAL I2C library

mduffy
Associate II
Posted on February 10, 2015 at 18:29

I am working with a slave I2C device (Kionix KX022 acccelerometer)  which uses a ''repeated start'' mechanism to send data requested by the master (STM32F405), e.g. to read two bytes of data (from register N and register N+1) the following sequence

Master                   Slave

---------------------    ------------------------

START

Slave Address + Write

                         ACK

N (starting register)

                         ACK

START (repeat)

Slave Address + Read

                         ACK

                         Data

ACK

                         Data

NACK

STOP

It appears the STM32F4xx HAL I2C library does not support this directly, since HAL_I2C_Master_Transmit() sends STOP after the data.

I just want to confirm this before writing some code (i.e. gluing together the HAL_I2C_Master_Transmit() and HAL_I2C_Master_Recieve() functions and removing the intervening STOP).

Thanks in advance,

Mike

#i2c-stm32f4xx
10 REPLIES 10