单片机从入门到月入25K成长路线

*这文章是微信公众号“无际单片机”的文章《单片机从入门到月入25K成长路线》的摘要。

一、新手级

先学基础电路、再学C语言,最后学51单片机。

1.基础电路学习要点

电阻、电容、电感、二极管、BJT晶体管(三极管)、MOS管、集成运放就是我们产品开发的时候最常用到的,别的暂时不用学了,作为单片机软件开发来说基本够用了。

三极管和MOS管大多用于开关作用,只要理解开关原理即可。

2.C语言学习要点

初学只要学会基本语法就可以了。

3.51单片机学习要点

熟悉单片机外设使用的原理,其实就是看数据手册正确地配置寄存器,把外设用起来,懂得这个就够了。

每个单片机串口使用方法不同,串口只是传输数据,核心的重点还是数据帧协议解析的方法。单片机所有外设例程都可以跟原厂或代理商获取。

4. 51单片机项目实战学习要点

上网找一些单片机项目练习一下。
这个阶段你应该会碰到一个瓶颈,实现功能没有思路,有思路后不知道代码怎么写。但也是有方法的。

  • 方法1:如果第一次做这个功能,最好参考专业人员的思路和代码。

  • 方法2: 要明白正确的功能实现流程。
    第一步:一定要非常熟悉你要做什么功能,从以下两方面着手。

  1. 用到单片机那些外设?
  2. 硬件驱动的原理是什么?

下面举例:
功能需求1:通过IO口发送EV1527协议格式的无线数据。
在这里插入图片描述
用到哪些单片机外设:
ASK_SentData 我们接到了单片机IO口,从原理图分析得出只用到了单片机一个IO口ASK_SentData,,哪怕你看不懂中间电路图也无所谓,大不了你到时候问下和你设计这个图纸的硬件工程师。

硬件驱动的原理:
通过这个电路,可以把IO(ASK_SentData)输出的高低电平转换成433M的电磁波发射出去。

一定要先搞懂上面两个

第二步:分析逻辑功能
比如说EV1527协议格式的数据,就是建立在硬件基础上的逻辑功能。我们可以直接上网搜ev1527,慢慢去熟悉。
最后你会发现,原来就是一种时序标准,然后用单片机IO去模拟这个时序,比如说先发同步头,然后再发数据位,类似于红外码。

最后你再用代码去实现这种协议,这一步才是真正的难点。

所以,如果你做不出来,首先要定位好自己的问题在哪里,是硬件原理不会分析,还是EV1527协议没搞懂,还是代码不会实现。

找到问题就针对性去解决就好了,大多数人是代码不会实现,可以上网搜例程代码。

不管功能多复杂,都需要这样一步步拆解。

多抄代码,再理解作者解决的思路,再自己用这种思路不看例程独立写出来。

二、中级

1.通讯协议

这个不需要单独去学习,而是贯穿中级整个环节,一边学单片机一边学协议,最后用在项目中。

IIC、SPI、串口、CAN是标准的通信协议,最常用的是IIC、SPI、串口。

标准协议就是不管你用来和什么芯片传输数据,时序都是相同的。所以掌握常用的这几种标准通信协议,就基本掌握大多数功能芯片了。

2.单片机

  1. stm8外设使用:
    stm8和51单片机使用起来不太一样,51需要自己配置寄存器使用外设,stm8则st官方有现成的库,直接调用库函数就能把外设开起来。我们要做的不是去记寄存器,而是去熟悉每个外设对应的一些库函数和参数。

开发项目的时候都是拿别人现成的例程熟悉后改改参数就行了。

  1. stm8项目实战
    lora对面试是加分项。

3. 瓶颈期

主要体现在单片机外设都能用起来,整体项目代码一整合就不知道怎么下手了。

解决办法:

  1. 第一步:把项目需要用到的外设都先用起来
    这一步很简单,常用的单片机芯片的外设例程,网上能轻易搜到,直接拿来用。如果是冷门的单片机,那可以跟原厂和代理商获取例程和技术支持。

  2. 第二步:实现各功能模块代码
    举个例子:
    在这里插入图片描述

  3. 第三步:整合各功能模块代码。
    最后把这些代码整合起来,完成整个项目功能。

这个有两个很重要的技巧。
第一个是不要站在整个项目功能的角度去思考代码怎么写,一定要拆分功能,都需要用到哪些外设,每个外设分别实现什么功能模块。

第二个就是不要想好功能全部实现思路以后才开始动手写,正确的是一有点想法就动手去写去调试,然后根据调试结果去改程序,一个功能需要多次修改优化才能正确。

4. C语言进阶

  1. 枚举、 2.结构体、 3.指针、 4.回调函数

5. STM32单片机

STM32只需要学习常用外设就行了,以下这几个外设最常用。

在这里插入图片描述
学习的重点,只需要调用库函数把外设用起来,会修改相关参数就够了。每个外设的例程直接抄各种开发板。

6. STM32项目实战

7. 瓶颈期

问题1.单片机外设都能用起来,各功能模块代码不知道怎么实现。

解决方法:跟前面的一样。

  • 第一步:一定要熟悉你要做什么功能。
    1.用到单片机哪些外设?
    2.硬件驱动的原理是什么?

功能案例1:按键检测功能
在这里插入图片描述
S1按键接到单片机的PB3引脚,所以需要把PB3设置成输入上拉模式。按键按下的时候,PB3就是一个低电平。这就是硬件工作原理。

物理按键按下的瞬间会有抖动,瞬间电平不稳定,可能在5ms以内。
在这里插入图片描述
最终按键按下,PB3引脚的电平应该就跟上图一样。

  • 第二步:分析逻辑功能
    检测按键有没有按下,就是读取PB3IO口的电平来分析波形电平变化,高电平代表没有按下,低电平代表按下了。

  • 第三步:代码实现
    分析好硬件原理和逻辑功能,最后就是实现代码了。刚开始可以学习模仿别人的代码。

8. 物联网无线通讯

三、 高级

1.数据结构及算法
例如队列、链表

2.编程思维
做一个有参考价值的项目成长最快。

  • 模块化编程思维
  • 面向对象编程思维

3.项目程序架构优化

4.觉悟期
在这里插入图片描述
单片机在产品上主要的作用就是数据采集,经过逻辑处理后,再输出控制信号。最常用的外设就是上图这些。

  • 难点1:数据输入以后有些是需要去分析,比如说ADC采集电量,从单片机寄存器读到的是2个字节ADC值,需要经过数学计算才能得到电压值。
  • 难点2:比如说输出频率可变、占空比可变的PWM去控制电机T型加速,S型加速。

要把大多数的时间学习完成产品的逻辑功能代码,逻辑功能代码考验的都是你编程思维和水平。

  1. RTOS
    经历了上面1,2,3个阶段再去学习。
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值