STM32 TFT not displaying solid color
After getting this working on an MSP430 using nearly identical code, and staring hard at the oscilloscope, I realized that the SPI peripheral of the STM32 was performing 'data packing' on my bytes, resulting in 16 cycles per transfer rather than 8. I resolved the issue by using this method of setting SPI2-&gt;DR.

*((uint8_t *)&amp;SPI2-&gt;DR) = (uint8_t)data;