STM32 gotchas
169. Inconsistent naming considered harmful- especially between RM and CMSIS-mandated device headers

In both documentation and the CMSIS-mandated device headers, ST sometimes for no particular reason changes name of a given module, register or register-bit/-bitfield, between STM32 families. As a consequence, not only code porting becomes hard, but also studying differences in documentation and code (using textual search), too. One example of this issue is the backup SRAM, which is called BKPSRAM in 'F2/'F4/'F7, yet, inexplicably, called BKPRAM in 'H7.

While this inconsistency is bad enough, ST makes it worse by naming of symbols in the CMSIS-mandated device headers. Not only are they sometimes inconsistent from family to family, some of them also uses different spelling for modules/registers/bits/bitfields than the RM.

Most striking examples of this problem include the FMC/FSMC and UART/USART naming issue. The inconsistent numbering problem is related, too. Some particular issues of this kind have been discussed also here.