Кварц (хотя он и не особо нужен) на 8 МГц - осциллом смотрю: генератор стартовал.
А вот инициализация ФАПЧа из кода, порождённого CubeMX, не работает по непонятным пока причинам.
Рыться в этой лапше я не хочу - придётся, как в старые времена, снова написать самому.
Тупые индусы нахуевертили "совместимый" и "переносимый" код так, что сам Сатана будет плакать, пытаясь понять, что это за вонючая херь.
Написал просто инициализацию HSE и PLL - заработало как должно.
Оказалось, что победить передачу одного байта "в лоб", простой записью в регистр данных SPI, не так-то просто. Два байта - легко, а вот один не получается: передаётся всё равно два (записанный и нулевой). Потому что регистр данных в модуле SPI 16-битный, но даже если обращаться к нему как к 8-битному, всё равно почему-то передаётся два байта. Бодался-бодался, плюнул, написал функцию, которая делает то же самое, но при помощи DMA -- заработало. Хош один байт, хош десять. Работает!