51单片机与STM32入门指南:基础分析与比较
51单片机和STM32是嵌入式开发中两种主流的微控制器,它们在架构、性能、应用场景等方面存在显著差异。以下是两者的对比分析及选择建议:
1. 51单片机与STM32的定义与特点
51单片机
STM32
2. 两者的主要缺点
51单片机
STM32
3. 当前主流选择与适用场景
选择51单片机的场景:
选择STM32的场景:
4. 总结与建议
关于入门:很赞同这位博主,下面是他的说法
先说我的答案
如果你之前只是接触计算机方面的东西,对单片机的内部结构,以及供电,外设,传感器,相关控制硬件,驱动硬件,保护电路等还没什么了解或者没什么概念的话,我建议(只是建议)你从51开始。
第一点
这里并不是说学习stm32需要丰富经验,而是说学习嵌入式这个领域本身就是既要由浅入深,又需要经验与积累,更要不断从中获得探索的兴趣与乐趣的。
学习51不浪费时间,相反,手册简单易懂,资料多如牛毛,不用管STM32中各种库的互相学习和混合编程,51的操作寄存器方式又相当有助于理解单片机的来龙去脉,既然都说了是学习,为何不用?
等到了真正能够干活,做大东西的时候,简单用用stm32很快能上手,一点也不亏
第二点
出来混的,迟早都要还的。
17年,我有幸前往清华做切磋交流,一位大四学姐的话很有高度,与大家分享:
“你会哪种单片机不重要,要看你要用哪种单片机。”
到了后来,我们已不再论单片机称英雄,因为你该会的都得会!一个东西要你接手查查bug调调程序,主控是51,你总不能和老板说这活我干不了我不会51。那此时,你会的stm32也就没什么用了。
第三点
由浅入深,培养模式与方法,这样能够更深入的抓住不变的东西,不容易劝退而对整个行业感到无助与失望。
新手学嵌入式难把握劝退问题。同学兴冲冲地买了开发板,结果弄了一下午灯都没点亮,也不知道是程序还是其他问题。我去帮他解决,发现他的LED没有串电阻,不是没点亮,而是已经烧毁了。他告诉我他很失望,东西这么脆弱,价格又这么贵(其实是他不清楚LED是非常非常便宜的器件,他只是看到整个实验套件要好几百)
这件事做举例可能不太准确,毕竟所有单片机都可能面临这种情况,但其中的道理再适合不过了:
缺乏相关知识与经验:
LED应该是最基础的外设,串1k对5v,串510对3v3怕是有点经验人的常识了。
(不要说学过模电就好了,我们都是电信学院的当然学过模电,然而实践并不是书本,让没经验的人算算这个led要用多大电阻连接,电阻还得是标准阻值内的,怕是连datasheet都不好查)
没被现实暴打过:
20%code,80%debug,半天时间就放弃有点快了,更何况这么简单的点灯,只要调试过嵌入式,都能很快锁定问题。
缺乏调试手段
万用表没有,也没去网上找找为什么,只是盯着程序看了半天。这可能是新手都有的经历吧。(当然,找外援也是一种高妙的调试手段哈哈)
我们不能完全避免这些,毕竟新手要是有经验了那就是老鸟了。
但我们可以尽可能的控制这种劝退的发生,选择一个简单的单片机能尽量减少不该有的岔子和疑惑(后来那个同学被我安利去买了万用表等,并且先玩了arduino去了解基本经验,现在stm32也过渡过来了并且很厉害)
作者:xwhking