Могу сказать, что SPI у серии F3 при работе в 8-битном
мастер-режиме отличается от серий F1,F2,F4. Отличия такие: - В инициализации для F3 отличается значением для регистра CR2 - надо устанавливать бит FRXTH
- При записи в регистр DR необходимо чтобы был байтовый доступ!!! Если просто напишешь SPI->DR = data; - то отправишь 2 байта!!!
Не знаю что у тебя там за SPIDR, я для F3 серии использую:
#define SPI_WRITE_D8(spi, data) *(uint8_t *)&spi->DR = data