这个看学习的目的了,对于我们电子专业来讲,学习单片机必须学习到深处去,知道单片机运行的原理,就如你所说的,单片机说道底是对寄存器的操作,有了51的基础,相信你学习起STM32起来也是会非常快的。至于代码,也是要多看多练,很多时候看着别人的代码,会慢慢反思自己写的代码会有很多不足的地方,这也是一个过程。
现在很多DIYer的应用,比如adruino之类的,对底层的开放并不明显,就像如你所说的,囫囵吞枣,只要应用能跑起来就好了。实际上这样的代码放到工程中去是不完善的,效率上,功耗上,这种方式当你遇到问题要解决起来是非常痛苦的。
另外说下现在工作后的情况,很多时候一个项目的功能非常赶,供应商提供了相关的方案,我们可以很快在这个方案的基础上实现功能,如果出现了问题,是先反馈供应商,让供应商帮忙解决,再从自身找问题。这种方式限制了工程师无法深入了解目前方案的原理,这也是社会分工的一部分。
说了这么多,对于电子专业的学生,必须深入学习单片机本质,因为有了这个基础,才能更好的定位问题,而不是为做功能而做功能。