想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。初学单片机的一般会看到两种建议,建议初学者直接上AVR/STM32和建议啃微机原理 手撸8051汇编各成一派。大部分从传统EE学习路线走过来的人都会倾向后一种观点。

单片机初学者常见的问题(单片机的一些闲聊)(1)

对于走传统EE学科培养路线的新手来说,学习51单片机最重要的两点是掌握单片机的使用方法,其次就是从单片机这个窗口探索一下EE学科就业能做些什么。在这俩学习目标下,「从入门到放弃」、「单片机集邮」和「快速入门Linux」是常见的三个大坑。

「从入门到放弃」是初学者最常见的一个坑,单片机的门槛就是躲不过去的——想学单片机的同学只有使尽全身力气跳过去才是唯一的出路。推荐用C语言来学,结果游到了VC 6.0的海洋里;推荐用汇编来学,没有认真了解过计算机工作原理就去看汇编的代码就仿佛在看一行行的天书。写了一个流水灯之后就把板子收起来了,好不容易再拿出来,插反芯片然后上电,冒烟了。

「单片机集邮」是第二个坑,学了51之后学什么好呢?AVR和STM8好像不错,学到一半发现大家都在用STM32,于是写了个流水灯之后又开始去学习STM32的各种库,这时候感觉自己用C能做点单片机的东西了,于是在各大论坛里逛逛看看有什么提高自己的办法,然后发现有人说并行计算FPGA和ASIC什么的才是未来。转头一看,工控界还在用那么落后的PLC和梯形图编程,连51都不如啊!用cortex-m4的片子写了一个电机控制的程序,再配上USB上位机不就是半个月的功夫吗,业界居然还在用28335 RS485这些不主流的东西?上电,怎么装了半圈就抖抖抖了?程序跑飞吗,复位一下试试,结果冒出一缕青烟。

硬件设计搞不定,我搞软件还不行吗?抠成本是EE研发的常态,找了几个大厂发现80%的MCU都不带MMU的啊,只能跑个破RTOS。这东西不就是一个任务调度器吗?有什么技术含量?看看源码,define满天飞,用C做的OOP看不懂,没劲。于是去学了个带MMU的芯片,看着教程的步骤去移植了linux,跑上了自己写的应用,虽然说反应有点迟钝,但是好歹是带触摸GUI的!那么多好用漂亮的库不用,工业搞不起来就是缺少这份人文情怀!

实对于EE学生来说,单片机这东西,还是得重复一下开头的观点,最重要的是掌握单片机使用方法。为什么走传统EE track的人多推荐先学习微机原理和最小系统呢?因为逻辑设计和电路硬件设计是传统EE的势力范围。到后面有人会提醒你,单片机要玩得溜,关键还是靠算法靠协议适配优化。这两点看似对立,实际上单片机却是给了新手们管窥EECS不分家趋势一个最好的机会。靠51进行入门学习,先把东西做出来,再问为什么。

有人对MCU怎么造的感兴趣,于是去学IC了;有的人对压榨硬件性能感兴趣,玩超频已经满足不了他的需求,于是精通了体系结构;一部分人发现自己写的东西不管怎么优化都得不到自己满意的性能,于是学会了器件选型,上了DSP玩起了汇编级优化;有的人要挑战要MBTF过亿搞起了可靠性设计。但是学单片机的最终目的我个人觉得是学了这个芯片然后去找到工作,有梦想有追求是好事,但是也要填饱肚子。

本期先分享到这里,想要进群学习单片机编程的同学可以私信我,回复“我要入门”,与我们一起成长,喜欢的可以点个赞关注我们!

,