It is very difficult for you NOT to use CMSIS these days. SPL is being discontinued for future development. HAL / Cube is the future if you want to stay with ST's libraries. You have other non-ST solutions, however. People often talk about how buggy the ST libraries are and my experience with those claims suggest they are more of a user problem than a code problem. At least with thee "very buggy" SPL. The known problem there is the I²C code for some chips, most often unknown to many people, or known as a hardware problem. Another example was in the unofficial release of SPL 3.5. Most of user problems with SPL have been due to inability to understand how the code works and linking the code to the hardware. I used OEM libraries often and have found them to be generally of very high quality, certainly better than most code produced by "experts". So I would suggest that you plunge into it and see if it works for you. Overhead is fairly minimal. And if you structure your code right switching back to your own code from the library is easy.