I would have a look at mBed - they have a good Arduino-style API with well written libraries to interface with a variety of board.
If you need to go deeper, and you are using ST, beware, the [ST ecosystem is terrible](
https://www.eevblog.com/forum/microcontrollers/st's-(stm32cube)-software-ecosystem-is-terrible-how-can-we-fix-it/). But if you must...
I work in Eclipse with the GNU ARM Plugin, and OpenOCD as the debugger (its built into the plugin).
It was painful to setup like you wouldn't imagine, but once it works, it works. I generally dislike Eclipse. I am a *huge* JetBrains fan and use IntelliJ (and a little Sublime) for all other development. I wish CLion had a community version that we could make an embedded dev environment for. Best text-editor, refactorings, editor performance, diff tool, etc.
However, Eclipse feels amazing when you look at the other "industry-standard" IDEs for ARM development. I cannot stand Keil and IAR. They have such terrible editors I don't know how anyone writes well structured code, or refactors, or uses version control effectively.
To work productively I need: keyboard shortcuts to jump to files and symbols; find usages/call hierarchy; include browser; code style/smart-indent; file navigator linked to file system (none of these virtual files that get out of sync); auto-complete; ctrl-click code navigation; find text in files; refactorings; extract methods/variables shortcuts; local history; vcs integration; plugins.
I don't think this is unreasonable to expect a decent editor from these $4000 IDEs, but I think its very important to have good debugging features which are only available at these kind of price points. You will suffer one way or the other in ST.
CrossWorks has a big fan base on the usual forums, is cheap, and works pretty smooth for setup, flashing, debugging, but its editor doesn't have ctrl-click navigation and is pretty weak.