STM32 as I2C slave: Data recieved LED not working
I'm trying to setup an STM32F401RBT as an I2C slave with an Arduino Uno as the master. The Arduino code looks as follows:

I'm simply trying to transmit "3". The STM32 side looks like this:

I use these three callback functions to manage the data. I am successfully recieving the correct number on the STM32 however the sub routine in the HAL_I2C_SlaveRxCpltCallback is not working. I'm trying to light up and LED for 100ms and off again for 100ms however the LED is constantly on and doesn't blink. Also, once the LED first turns on the STM32 ignores all other communication from the Arduino as it doesn't send an ACK bit on the next transaction. So somehow when it goes into this sub routine it freezes and doesn't do anything. Any ideas as to what the issue is? Thanks.
