I came across this [0] yesterday while looking for STM32 stuff for those cheap ass $2 STM32F103 boards. To your point, however, it's still just writing values directly out to register pointers. That entire repo can be boiled down to one little C program like this [1].
0. https://github.com/jamesmunns/bluepill
1. https://gist.github.com/uxp/35c9d5d51b2229f5c4c2e5b11c3341e5