新手学习单片机最常见的六大误区,你进坑了吗?

2023-01-03  

一、去背寄存器

千万不要去记寄存器,我做开发这么多年了,一个寄存器都记不住。

寄存器一般是我们要使用单片机外设的时候会去配置。

一流的方法是直接参考别人的配置程序。

二流的方法是看数据手册,最傻雕的做法就是去背寄存器。


二、去背汇编指令

除了一些在校大学生应付学校考试要背以外,我到现在为止,做过几十个项目都是用c语言,没用汇编做过一个项目。

很多人说还是有必要学,学了对单片机理解地透彻一点。

我想说的是你又不制造单片机,理解这么透彻干嘛。

单片机只是工具,90%的人都是用这个工具做应用,你理解透彻和我只会用这个工具,没任何区别。


三、以为C语言学习门槛很高

C语言小学生都能学会。

我没有跟你在吹牛逼啊,前端时间有一个大姐让我带他的儿子学习单片机。

他儿子才11岁,然后我拒绝了,因为在我的认知范围里,这么小很难学的会。

然后她说她儿子之前学了c++,有点基础,我当时都惊呆了,现在的学生真的是一个比一个厉害。

不过最后我还是让她慎重考虑下,毕竟我们培训的定位是那些学习完之后想找到工作的,我们课程也是以项目驱动去学习。

新手在学习c语言前期的时候,只要学习基本语法就可以了,来来去去就5条最常用的语句。

比如说if..else,switch, for,while, 赋值语句(=).

7个运算符:加减乘除,或运算、与运算、非运算。

4个逻辑关系符:||、&&、!=、==

3个最常用的数据类型unsigned char、unsigned char short、unsigned char long。

3个进制转换:二进制、十进制、十六进制

还有就是函数的定义和调用。

基本上掌握这些,你就能编写很多程序了。

学c语言是一个循环渐进的过程,不要一上来就像写很复杂的程序,再牛逼的大佬也是从点灯开始。

等你写多了,熟悉了,到时候再学习指针、结构体之类的。

因为你没有一定的基础时候,去学一些高级应用肯定是学不懂得。

只有等你碰到了只能用指针、结构体去实现的功能的时候,你才会深刻理解它们的作用。


四、总是因为记不住各种协议而烦恼

做单片机开发会经常接触各种协议,但是总体来说也就是:IIC、SPI、USART、单口通讯。

前期的话也先不要去学习USB,CAN之类的协议,这些一般只会用在细分的领域。

大家如果工作中碰到了,再针对性去学习。

大家真正只需要掌握IIC、SPI、串口、单片通讯就行了。

学习这个也很简单,直接搜别人的例程来用,先用起来,再根据程序的去理解这些时序图就简单多了。

这里没有说错啊,是通过程序去理解时序图,这个逻辑跟大多数人的思维可能是反的。

但是我个人就是这样看懂时序图的,也是我的经验,大家可以去尝试,并不一定适合大家。


五、纠结代码写得好不好

新手前期做项目写代码以实现功能为主,特别是51单片机,你代码写好了内存也未必够你用。

在你没接触过大项目程序开发的时候,你根本不知道代码的好坏,在功能上有什么区别。

反正都能实现功能对吧?

等你真正碰到一些大项目的时候,如果你代码水平不行,肯定是做不出来的。

代码量大了你Hold不住,不知道怎么去整合,整合完以后功能之间也有冲突。

最后好不容易整合好了,又发现移植性太差,可扩展性太差,万一项目经理让你增加或者改个功能,你就挂逼了。

这个时候就是你该去思考怎么样把代码写得更好的时候了。

因为你知道痛点在哪里了,在针对这个痛点去找解决的办法。

最好的方法依然是去参考,写程序比你厉害的人。

你再针对性去学习,比如说看我录制的那个程序架构教程。

我那个教程就是我这么多年产品开发当中碰到问题,再学习解决,最终总结出来的精华。

六、什么都想学成专家

很多新手在学习过程中碰到不懂的就想把那个知识点系统学一下,不学精学透不回头。

举个例子,比如说一个电路看不懂,就以为是自己模拟电路、数字电路基础太差。

然后去把模电数电系统学一遍,学着学着就学不下去了,然后就以为做单片机开发太难了,最后也就放弃了。

就像上面这种图,你去分析呗,等你真正吃透,人都老了。

关键实际产品开发直接用一个功放芯片就行了,又节约尺寸又便宜还稳定。

所以,除非你到时候去做芯片,做开发学这些还为时过早,也很少用到。

即便你系统学完模电数电,你再回过头去看当初看不懂的电路,我保证你90%几率还是看不懂。

因为你没抓住解决问题的核心。

这就是典型的走了弯路了。

正确做法是针对性学习,比如说这个电路你看不懂,那你首先要分析这个电路你是哪里看不懂。

是不懂某个元器件的工作原理,还是组合起来不懂?

这种可以去网上搜集一下相关电路看一下。

最好最快的方法还是请教懂的人,让他给你讲解一下。

不管是花钱还是你想方设法说好话白嫖。

别人给你讲半个小时啥都懂了,这样不比你系统学模电数电省时间嘛?

所以很多人花很长时间学不会单片机开发,就是走了太多这种弯路了。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。