Implementación de inicio repetido en un esclavo STM32 F0 I2C

1

Actualmente estoy trabajando en un controlador en un STM32F0 que se une al bus I2C como dispositivo esclavo. Actualmente no hay ninguna mención en el manual de referencia sobre cómo manejar una condición de inicio repetido, ¿alguien sabe cómo hacerlo?

Actualmente estoy manejando la solicitud I2C en AddressCallback y puedo enviar / recibir todos los datos, pero cuando trato de detectar un inicio repetido usando el indicador NACK (desde RM: el bit lo establece el software, aprobado por hardware cuando se envía el NACK, o cuando un STOP Se recibe una condición o una Dirección coincidente, o cuando PE = 0.) , el indicador ADDR nunca se establece, lo que significa que nunca se vuelve a llamar al ISR.

    
pregunta Galaxy

1 respuesta

3

Finalmente recibí una respuesta de ST. No hay ninguna referencia a la condición de inicio repetido en la documentación F0 ni a los ejemplos FAL HAL, pero hay un ejemplo en el paquete de firmware L4:

En el repositorio de Firmware L4, mira debajo STM32Cube_FW_L4_V1.8.0 \ Projects \ STM32L496ZG- Núcleo \ Ejemplos \ I2C \ I2C_TwoBoards_RestartComIT

El ejemplo muestra cómo realizar un único búfer de datos I2C TX / RX en modo de interrupción y con una condición de inicio repetido.

    
respondido por el Galaxy

Lea otras preguntas en las etiquetas