当前位置:首页 > 公众号精选 > 小麦大叔
[导读]点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达大家好,我是小麦,最近有朋友问,已经学过51单片机了,如何进阶?问题事情是这样的,他在本科时期已经有相应的单片机开发经验,做过简单的项目,流水灯,倒计时,红绿灯,后面该如何提高呢?首先我感觉得给进阶下一个定义,也...



大家好,我是小麦,最近有朋友问,已经学过51单片机了,如何进阶?
问题事情是这样的,他在本科时期已经有相应的单片机开发经验,做过简单的项目,流水灯,倒计时,红绿灯,后面该如何提高呢?


首先我感觉得给进阶下一个定义,也就是明确也学习目标,怎么样才算进阶?我掌握哪些东西,可以独立完成哪些开发任务,才算达到了进阶的目的呢?


如果单纯是单片机开发的进阶?


我认为入门的阶段是这样的:


  • 如果刚开始以51单片机起步,能基于开发板做简单的项目,比如搞个流水灯,再复杂点会做电子万年历(DS1302 LCD1602)就挺不错了;
  • 如果一开始就上STM32了,那么能在常用的STM32开发板上做一些功能,实现一些小的功能,或者能用CubeMX配置和初始化代码,然后做一些项目;
我认为的进阶是这样的,需要掌握这些;


  • 首先我觉得硬件设计是必要的,能根据需求,进行硬件开发,进行原理图设计,PCB的Layout,绘制简单的双层PCB板;
  • 在进行硬件设计的过程中,可以试着抄一下已经开源的原理图,或者一般集成电路的DataSheet中都有相应的参考电路,根据这些参考电路进行原理图设计,后面可能会进行一些修改,在新的改版中进行修改即可。
  • 焊接技能,如果有最好了,没有的话,可以在PCB打样的时候找厂家进行贴片,配套服务还是很不错的,节省了时间成本;
  • 样板到了之后,就要动手对板子进行调试了,这时候会比较复杂,配套的技能包,比如示波器如何使用?如何捕获波形?如何使用万用表?有时候问题会比较玄乎,感觉可能在硬件上,又感觉在软件上,这里建议最好有一个方案验证板(至少保证硬件没问题);
  • 最后是编写安全可靠的代码,当然如果移植性好,代码框架好最好了;
之前也有朋友问我,自己想做一些DIY项目,软硬件都自己设计,该如何学习?他是搞互联网专业的,做嵌入式单纯是爱好,享受生命在于折腾的快乐而已;


硬件设计

新手建议使用Altium Designer,教程比较多,国产软件立创EDA也不错,开源的KiCad也可以使用,选一款就行,软件都大同小异,不要在纠结选择哪一款软件上而浪费时间,我个人建议使用Altium Designer,下面简称AD;


网上有很多免费的教程,可以去搜一下,看完教程一定要自己尝试着设计一个电路,可以简单一点,设计一个单片机的最小系统。




链接:https://pan.baidu.com/s/1yKfsttgIBeKKMK65m9H91g


提取码:pzsz


软件设计

单片机的编程开发是必须要掌握C语言的,汇编语言可以简单能读懂就行,调试的时候能简单看懂反汇编就行,所以要把主要精力放在C语言上,其实,初期C语言会常用的语法:


  • 循环:for,while
  • 分支:if else,switch
就可以做很多事情了,但是后面还需要进阶,因为写出健壮高效,可复用,可移植的程序,只会这些还远远不够。


好了,我们学习了C语言是为了开发单片机的,是要直接对硬件进行操作,直接操作单片机上的外设寄存器,所以


这里以STM32举例,通常我们需要熟悉常用的接口和协议,和一些常用的外设,后面你会发现,不论是什么厂家的单片机,其实都大同小异;


比较常用的,我们会遇到GPIO,TIM定时器,systick,UART,I2C,SPI,CAN等;


一般来说,像STM32这种硬件平台,前期使用的人很多,网络资源非常丰富,很多时候会Ctrl C和Ctrl V就行了,另外ST提供了cubeMX这种工具,初始化根本不需要人为干预,但是有时候过于依赖工具,往往会被工具反噬,我就遇到过用cubeMX配置代码,遇到问题一脸懵逼,不知道如何下手的朋友。


当然我不是提倡大家穿着新鞋走老路,因为时代在发展,不能还一个寄存器一个寄存器去手撸,不过这时候,需要对底层有一个更全面的认识了,从单片机内核架构层面去理解,这需要学习其他的体系知识了,比如地址总线,数据总线,ARM的架构,外设是如何CPU进行数据交换的等等;


比如今年缺芯严重,不得不进行国产替代,不吹不黑,今年换了几款国产的MCU,资料不太完善,也没有太多参考的Demo,后来使用固件库的时候发现了几处BUG,最后还是得靠自己参考开发手册排查错误。


言归正传,我们要学会去官网找资料,有很多应用方案,芯片的开发手册UM( user manual),自己搭建开发环境,然后找到相应的芯片的固件库,这些都能自力更生,就非常不错了。


最后

这篇文章里我简单地聊了一下如何进行单片机进阶,个人认为需要硬件设计和软件设计两部分;


  • 硬件设计;
  • 软件设计;
如果详细展开,每个部分都有很多东西可以学习的,其实感觉最初能做简单的PCB,然后在这硬件基础上进行相应的软件开发,就已经达到了一个进阶的目的,后续需要的是不断在项目中进行提高,可以不断积累硬件方面的经验,另外还需要系统地学习基础知识,比如计算机系统(微机原理),C语言,数据结构等,软件部分可以多看一下开源的优秀项目,学习他们的设计思想,这样会提高得很快。


好了,这期先这样,时间比较赶,简单地说一下哈,我是小麦,我们下期再见。



—— The End ——




声明:本文仅代表作者本人观点,不代表本站观点,如有问题请联系站方处理。
换一批
延伸阅读

面对机会满满的脱毛仪市场,宇凡微MCU应用服务商推出了不少产品开发方案,为生产厂家提供更多功能选择。

关键字: 宇凡微 MCU 单片机 脱毛仪

作为拥有13年行业经验的MCU应用服务商,宇凡微推出的射频EMS美容仪开发方案,将九齐单片机作为产品的主控制器,可以达到消除皱纹、增加皮肤弹性和光泽度的效果。

关键字: 美容仪 宇凡微 MCU 单片机

摘 要:PM2.5作为雾霾的重要组成部分,其颗粒物直径小,含有高浓度的有毒、有害物质并且在空气中长时间保留、远 距离漂浮等特性,使得对PM2.5的检测和治理成为当务之急。本设计采用MSP430F149单片机为控制中心,由...

关键字: 自动检测 粉尘浓度 PM2.5 单片机

当前,单片机芯片,正广泛用于消费电子、计算机与网络、物联网、智能家居等领域,尤其是消费电子领域,单片机芯片无处不在。而作为一家专注电子产品领域的MCU方案开发服务商,深圳宇凡微凭借实力,成为众多生产厂商的选择。

关键字: STM32 MCU 单片机

单片机主要由运算器、控制器和寄存器三大部分构成。其中,运算器由算术逻辑单元(ALU)、累加器、寄存器等构成,首先累加器和寄存器向ALU输入两个8位源数据,其次ALU完成源数据的逻辑运算,最后将运算结果存入寄存器中;控制器...

关键字: 半导体行业 MCU 单片机

摘要:结合物联网专业硬件方向系列课程教学现状及Proteus仿真软件的特点,从数字电子技术、模拟电、单片机原理及应用等系列课程教学方法和教学手段的改革出发,介绍了Proteus仿真在这些理论课和实践教学中的应用。实践证明...

关键字: 物联网 虚拟硬件实验环境 Proteus仿真 单片机

摘要:大型公交采用语音报站受限于空间,中小巴士采用的人工方言报站,可能造成乘客出行不便,设计一种单片机的报站系统,该系统分为司机主控台部分和扶手终端部分,都采用单片机作为控制核心,以字符显示站名的方式进行报站,同时给出了...

关键字: 字符显示 语音报站 扶手终端 单片机

以下内容中,小编将对开发板的相关内容进行着重介绍和阐述,希望本文能帮您增进对开发板类别之一——单片机的了解,和小编一起来看看吧。

关键字: 开发板 PIC 单片机

通过本文,你将对51单片机、51单片机通信协议有所了解。

关键字: 51单片机 指数 单片机

为增进大家对单片机的认识,本文将对51单片机予以介绍,主要内容在于介绍个人学习51单片机的步骤,或者说学习51单片机的经验。

关键字: 51单片机 指数 单片机

编辑精选

技术子站

关闭