大家好,我是无际单片机编程的徐工。

怎么学习单片机?我给大家分享一下我的单片机学习之路。

我的单片机可以说是自学的,过程有点曲折。

刚开始是啃理论,学习单片机的设计框架,内存、寄存器,GPIO口功能,定时器,单片机汇编语句等。

每天背概念,记理论,过了大概一个月,结果肯定就是一个懵逼的状态。

正在这个懵逼的时候,实验室的一个同学建议我先学C语言,再学习单片机程序开发,说汇编没有啥用。

我又花了2-3个月的时间学习了C语言,买了一本谭浩强的C语言教程,从头到尾抄笔记,抄完了几个笔记本,但这次更加迷茫。

因为大学里的学习,都要靠自己,老师没有太多的时间专门辅导你,而且自己又不是那种特别优质的学生,是得不到老师的特别眷顾,同学之间有存在一些比较幼稚的比较和竞争。可以帮助你的人很少。

后来我自己买了一个电脑,那种大尾巴的台式机,开始自己装软件,在淘宝上买了一个开发板,开始了一个大胆的尝试和投资。

很快,我完成了点亮第一个LED灯的实验,后来又学会了GPIO的外部中断,定时器,串口通讯,LCD1602显示,数码管驱动等。

每完成一个功能,都是特别的兴奋,尤其是点亮第一个LED灯的时候,那种喜悦和满足感相信大家都是知道的。

虽然刚开始有点曲折,但结果是美好的。

大学毕业之后,找工作就有点傻眼了,找不到工作,没人要。

你有工作经验吗?你做过什么项目?你是应届生?说到和单片机开发相关的招聘需求,我几乎都不能满足,想撒个谎都骗不了别人。

如果我现在出去招嵌入式单片机工程师,如果你是应届生,不要。

如果你没有单片机开发经验,等我通知。

或许你不相信,但现实就是这么残酷的。

甚至我找第二份工作的时候,也是面对同样的残酷现实,面试官给一个全英文的考卷,我不知道从何下手,特别绝望和不自信。

其实说到底,就是自己的开发经验不足,单片机开发能力太差导致的。

回想起来,我成长的还是非常缓慢的。

大学的时候,就是做一些简单的单片机程序,复杂点的就是电子时钟,红绿灯计时控制器之类的。

参加第一份工作写的程序就是if 套while,while套if之类的,当时也只能做基于51内核的单片机产品。

几年之后才开始慢慢的接触STM32单片机,学习单片机程序开发的框架,消息队列等相关知识……

想想自己的成长之路,感觉自己走了好多弯路,浪费了太多的时间。

如果有人问我,如果再给我一次机会,会如何去学习单片机程序开发?先学什么?如何入门?

1.首先,学习单片机C语言基础

C语言是单片机程序开发的基础,所以首先是学习单片机C语言的基础知识。

有人问,单片机汇编语言,要不要学习?

汇编语言是最接近单片机底层机制的语言,运行效率最高,但是汇编语言学习相对比较复杂,而且可移植性差,不同芯片厂家的汇编也有所差别。

所以建议大家先学习C语言,等你完全掌握了单片机程序开发之后,再有需要的时候再去学习。

从C语言开始入门单片机相对比较容易,通用性强。

C语言学习过程中,大家要注意一个误区,再刚开始学习单片机开发的时候,只需要C语言的一些基础语法和变量定义就可以开始了,不需要深入的学习.

C语言太强大了,如果深入的学习,会导致你进入一个学习的误区。

针对单片机的c语言入门教程,我们无际单片机编程团队专门为学员录制了一套,目前也是公开的。

这个跟市面上其他c语言区别是,学这个可以跟单片机开发无缝对接,市面上很多是基于上位机的c语言讲解。

2.从C51单片机开始学习单片机,掌握单片机的相关理论知识

C51内核单片机可以说是最经典的。

C51单片机的寄存器相对比较少,所以我们可以从芯片底层深入了解单片机程序的工作原理和单片机程序开发。

其次,C51单片机的入门学习相对比较简单,可以尽快的上手,同时可以培养大家的兴趣。

3.进一步提升C语言知识,结构体,指针,枚举,队列等,再学习STM32单片机。

C51内核的单片机学习完成之后,大家就需要提升一下C语言开发能力。

大家要掌握结构体,指针,队列等相关知识。

这块无际单片机编程也有相关系统课程和源码,都是无偿分享,需要自行去查找,这里就不方便留链接那些了。

STM32单片机的资源相对就比较丰富,FLASH,RAM的空间更大,工作的频率更高,可以做一些更加负责的产品。

STM32单片机的学习,建议大家直接通过标准库的方式学习即可,不需要深入的去了解相关寄存器,寄存器我们在需要的时候再去查看。

其次在STM32单片机上我们还可以跑一些比较简单的小系统,例如FreeRTOS等。这样可以提高程序的运行效率。

4.通过实战掌握单片机程序开发

学习理论是非常枯燥的,而且也是非常耗时的,时间太久了就失去了继续学习的兴趣和毅力。

我们学习的目的就是为了实战,那我们为何不去通过实战来掌握单片机程序开发的理论知识呢?

有了单片机程序开发的基础,和一些简单的单片机基础,就直接可以开始一些简单项目的实战了,然后循序渐进。

在实战过程中,遇到问题,就去学习相关的理论知识,然后完成实战开发,这样学习的东西更加的牢固,也会更加的有效。

怎样学会单片机?先学什么,怎么入门?相关推荐

  1. 单片机难学吗?单片机培训机构哪个好?

    10年前自学单片机的画面还历历在目,每天熬夜学习到凌晨1点,当点亮第一个LED灯的时候觉得一切都值得. 单片机在外行人眼里可能会觉得很难,因为涉及到硬件和软件让人头疼. 很多人还没开始就放弃了. 其实 ...

  2. 刚入门学单片机都想知道的,单片机会不会淘汰,难学吗,单片机是不是落伍了,不会模拟电路能不能学单片机,如何尽快学会单片机

    林北从事单片机产品开发那么多年,涉猎过工业仪表.医疗检测设备.家用电器等,做过多年的单片机设计培训.这一期将初学者关心的问题归纳一下予以解答,希望对初学者有所帮助. 初学者关心的第一个问题,单片机是不 ...

  3. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...

  4. 矩阵键盘逐行扫描C语言,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之矩阵键盘(逐行扫描法).pdf...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之矩阵键盘(逐行扫描法).pdf /***************************************************** ...

  5. 单片机找工作好找吗?不懂英语怎么学会单片机?

    我刚毕业的那会,找工作找了1个月多,我们从学校电子实验室出来的几个同学也都没有找到合适的工作,转行做其他行业去了,有的做销售去了,有的做管理去了--只有我坚持了下来. 其实对于刚转行或者刚毕业的兄弟们 ...

  6. STM32单片机怎么学最快?用这个方法只需要一周!

    最近看到很多小伙伴学STM32学的一脸茫然,有些甚至学1年都不会,有些虽然学会了外设使用,一做起项目来无从下手. 那今天通过自己的经历来告诉大家STM32怎么学最快,领悟到了1周学会绝对没问题! 一. ...

  7. 单片机python教程_如何入门单片机/嵌入式

    之前回答的一个单片机入门的问题,感觉脉络还算完整,遂把它单独整理出来. 大一学的单片机,本科玩了几年嵌入式,做过智能家居,智能小车,示波器,开关电源等等,后来工作(本人芯片行业)以后就没搞了,但是这段 ...

  8. 开发板对于学会单片机这件事重要吗?

    大多数想入门单片机的初学者都会纠结一个问题,应该买哪块开发板方便学习?其实市面上大多数的开发板都大同小异,功能上都不会差太远. 如果你身边有已经学会单片机并且成功进入单片机开发行业的人,它肯定有属于自 ...

  9. stc51单片机怎么学, 先掌握STC单片机程序烧录方法

    大家好,我是无际的搭档徐明. 今天我在这里和大家探讨一下关于51单片机怎么学这个话题. 08年我在大学里学习单片机课程的时候,学习内容主要包括单片机的发展历史,单片机的框架,单片机的寄存器,以及单片机 ...

  10. 编程java好学吗,编程好学吗?零基础学多久能入门?

    原标题:编程好学吗?零基础学多久能入门? 作为一个刚刚入门不久的Java学习者,我刚开始接触Java时,没有感觉它有多么吸引我.抽象.复杂.难以解释.看都不想多看两眼,更别说去认真学它了.可我跟着我们 ...

最新文章

  1. httpClient学习的初步认识
  2. Leetcode 82. 删除排序链表中的重复元素 II (每日一题 20210908)
  3. SpringBoot实现注册时头像上传与下载
  4. Android Zygote分析
  5. Go内置库模块 flag
  6. 设计模式(三):观察者模式与发布/订阅模式区别
  7. 一个简单的WebService服务
  8. ls mac 显示最近修改日期_Find Any File for Mac(Mac本地文件搜索工具)
  9. MySQL实战 | 01 当执行一条 select 语句时,MySQL 到底做了啥?
  10. 批量安装Windows补丁
  11. c#日期转换周几_C#中获取任意日期为星期几三种方法分享
  12. 爱奇艺取消剧集超前点播
  13. 使用WITH AS提高性能简化嵌套SQL
  14. 美男子的JavaScript笔记,望能助君留住秀发
  15. 查看EXE或DLL调用的DLL
  16. 一名 IT 工程师的九年工作总结!
  17. Axure安装、破解、汉化一条龙
  18. win10系统点击菜单没有反应
  19. 八位硕博大佬的百度之旅~
  20. 蓝桥杯(纯C)比赛--菜鸟级

热门文章

  1. 清华大学为何把突出贡献奖颁给他?看完这个我就懂了
  2. P8可以年入170万,那P10级别的程序猿,每天都在干嘛?
  3. DRF工程搭建、环境安装与配置
  4. python线程执行带有参数的任务(args、kwargs)
  5. 爬虫之selenium替换user-agent
  6. ACMNO.49:一元三次方程求解(主要就是精度问题)
  7. 第七篇:并发-恢复机制
  8. hadoop思维导图
  9. 定义一个DSL风格的LifecycleObserver(Kotlin)
  10. MySQL数据库-错误1166 - Incorrect column name 'xxx' 的解决方法