Цитата
но SPI1_DR пуст!!!
Там 0xFFFF после предыдущей транзакции, верно?
Попробуйте извлекать данные из SPI_DR после каждой передачи, даже если они Вам не нужны. Если этого не делать, вновьпринятые данные не будут перезаписывать старые: ошибка Overrun с установкой соответствующего флага в SPI_SR. Т.е. при начале приёма буфер приёмника всегда должен быть готов (очищен).
PS пишу по памяти, с STM довольно давно не работал, лень документацию перечитывать.
Хм... посмотрел на дату сообщение и понял, что "слегка" опоздал с ответом. И не удалить теперь.