STM32 - developing code without controller
you can use the Keil simulator for testing your code and seeing how registers work but there are some differences to reality for example for usart simulation baud rates don't make a change but they sure make a change in reality. you can also use the new version of proteus but it only covers a limited number of stm32 microcontrollers