SPI STM32 as Slave

For a project I need to transfers quikly data from a Esp8266 to a STM32F103C8T6. The project is a matrix and I need to transfer 1600 bytes per frames from the ESP to the STM32 but I want each frame to take as little time as possible. I have tried with I2C but it take 108ms for 1600 bytes. I was thinking to use SPI but I’m not able to program the STM32 as Slave. I have tried to use the Hal library but I d’ont know how to use it. I think SPI with DMA is more useful for this system than SPI with interrupt.

Thank beforehand for replies