I have now interfaced to a max7219 7 segment display using SPI and a blue pill. There’s not much for me to say about this. It worked first time! Working with I2C was something of a fight. SPI is significantly easier. Check out the project page for the code.
I hope that others take inspiration from my bare metal library. Getting things up and running can be a real trial, so it is always good to see other people’s solutions. There are sure to be bugs in my code. So if you find them, then let me know. Tell me what the fix is, too.
I am still contemplating the merits of using CMSIS. Configuring it looks to be a bit of a pain.