@@ -524,15 +524,25 @@ void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, ui
524
524
if (obj -> i2c_onSlaveTransmit != NULL ) {
525
525
obj -> i2c_onSlaveTransmit ();
526
526
}
527
+ #if defined(STM32L0xx )
528
+ HAL_I2C_Slave_Seq_Transmit_IT (hi2c , (uint8_t * ) obj -> i2cTxRxBuffer ,
529
+ obj -> i2cTxRxBufferSize , I2C_LAST_FRAME );
530
+ #else
527
531
HAL_I2C_Slave_Sequential_Transmit_IT (hi2c , (uint8_t * ) obj -> i2cTxRxBuffer ,
528
532
obj -> i2cTxRxBufferSize , I2C_LAST_FRAME );
533
+ #endif
529
534
} else {
530
535
obj -> slaveRxNbData = 0 ;
531
536
obj -> slaveMode = SLAVE_MODE_RECEIVE ;
532
537
/* We don't know in advance how many bytes will be sent by master so
533
538
* we'll fetch one by one until master ends the sequence */
539
+ #if defined(STM32L0xx )
540
+ HAL_I2C_Slave_Seq_Receive_IT (hi2c , (uint8_t * ) & (obj -> i2cTxRxBuffer [obj -> slaveRxNbData ]),
541
+ 1 , I2C_NEXT_FRAME );
542
+ #else
534
543
HAL_I2C_Slave_Sequential_Receive_IT (hi2c , (uint8_t * ) & (obj -> i2cTxRxBuffer [obj -> slaveRxNbData ]),
535
544
1 , I2C_NEXT_FRAME );
545
+ #endif
536
546
}
537
547
}
538
548
}
@@ -577,8 +587,13 @@ void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
577
587
}
578
588
/* Restart interrupt mode for next Byte */
579
589
if (obj -> slaveMode == SLAVE_MODE_RECEIVE ) {
590
+ #if defined(STM32L0xx )
591
+ HAL_I2C_Slave_Seq_Receive_IT (hi2c , (uint8_t * ) & (obj -> i2cTxRxBuffer [obj -> slaveRxNbData ]),
592
+ 1 , I2C_NEXT_FRAME );
593
+ #else
580
594
HAL_I2C_Slave_Sequential_Receive_IT (hi2c , (uint8_t * ) & (obj -> i2cTxRxBuffer [obj -> slaveRxNbData ]),
581
595
1 , I2C_NEXT_FRAME );
596
+ #endif
582
597
}
583
598
}
584
599
0 commit comments