I have a curious question. Do I really need to learn how to use registers when I program a microcontroller?
I have been using Arduino for a long time. I quit using Arduino and starting to use STM32 because they are more cheap, faster and just better microcontroller. They do require more knowledge about C programming and what a microcontroller can do, because you can do more with STM32 than Arduino.
Anyway! I have tried to blink LED and read digital inputs e.g toggle with a STM32 by program it with registers. It's time consuming and painful. Luckily STM offer CubeMX so the user can setup a complete project with HAL-libraries without using any registers. Super easy and super fun!
This is how Atollic CubeMX looks like.
And now my real question, why I started this question. I have been using Atollic TrueStudio. Works fine. But today I upgraded my Atollic TrueStudio and STM have implemented CubeMX into Atollic TrueStduio. Before I have to download both Atollic TrueStudio and then CubeMX. Seperate software in other words.
But today Atollic TrueStudio and CubeMX is merged together into one software. Great! That's really good.
But...to create a project for a STM32 microcontroller, you need to create a CubeMX project. There is no "Create a blank ARM project in C" as it was before. Now is like "You want to create a STM32 project? Well, you never going to use register anymore so we choose for you! Here, have a CubeMX with HAL-libraries project! Ready to run!"
Well...that's great! But do STM assume that working with registers is not necessary when I use STM32?
I have no problem to use SMT32 with CubeMX + HAL libraries. Not at all. But I'm worried if I become "stupid" if I use CubeMX + HAL just to make it easy for be.
Should I program a STM32 with registers or should I use CubeMX + HAL libraries? Notice that this is a 32-bit microcontroller of tons of documentation and not a simple AvRTiny8.
Today I create large projects with STM32 thanks to CubeMX + HAL libraries. I could never do that without this technology.