As monkey to man is more senseful similarly I thought "why not start from very from basics" as in this case PIC16F877A, with expectation of understanding this "embedded electronics" stuff clearly.If my aim is to understand every node and corner of embedded don't you think ARM etc are "ready to serve" sort of things.
Sent from my Lenovo K8 Plus using Tapatalk
Sure that STM32F407ZGT6 is an advanced chip...
* It can still be used as if it is a more basic one albeit with several orders of magnitude more Flash and RAM than the PIC16F877A. In most ARM chips most parts of the chip default to a powered down state, so as long as your process of study haven't touched upon that part of the chip, you can leave it powered down and it won't interfere with whatever you are currently learning. However since the options are there ready to use, using that level of system as a learning tool allows you to step up the difficulty tree without switching tools.
* Contrast to 8-bit PIC, ARM (as well as PIC32 and AVR) uses GCC as the C and C++ compiler, which supports the latest C11 and C++11 language standards. This is also the standard compiler used by a plethora of open source projects up to and including the Linux kernel.
* ARM cores are being used by multiple chip vendors, so if you can move from one vendor to another fairly quickly as the processor core, compiler, tools and debuggers are likely mostly shared. You can even hop from ARM to PIC32 to AVR fairly easily thanks to them all using the GCC compiler, albeit being different target architectures.
* Bonus point for STM32 series: since they rely on next to no fuse bits settings during normal operation. Almost everything usually done in fuse settings like clock configuration are handled using regular application code.