单片机怎么学?下面我来和大家分享一下我学习单片机的经验。
我可以说我是自学单片机的,这个过程有点曲折。
一开始学习理论,学习了单片机的设计框架,内存,寄存器,GPIO端口函数,定时器,单片机汇编语句等。
每天死记硬背概念、理论,大概一个月之后,结果肯定是糊涂状态。
正在我迷茫的时候,实验室的一个同学建议我先学C语言,再学单片机程序开发,说汇编语言没用。
我又花了2-3个月的时间学习C语言,买了谭浩强的C语言教程,从头到尾抄笔记,写了好几个笔记本,但这次我更糊涂了。
因为你上大学是靠自己学习的,老师没有太多的时间辅导你,你又不是特别优秀的学生,所以不会得到老师的特别照顾,同学之间也存在一些幼稚的攀比和竞争,能帮你的人很少。
后来我给自己买了台电脑,大尾巴的台式电脑,开始自己装软件,在淘宝上买了一块开发板,开始了大胆的尝试和投入。
很快,我就完成了点亮第一个LED灯的实验,后来又了解了GPIO外部中断、定时器、串口通信、LCD1602显示、数码管驱动等等。
每次完成一个功能的时候,我的心情都会特别激动,特别是当点亮第一盏LED灯的时候,那种喜悦和满足感相信大家都知道。
虽然一开始有些曲折,但结果却是美好的。
大学毕业后,我在找工作的时候有点茫然,找不到工作,也没人愿意雇我。
你有工作经验吗?做过什么项目?是应届毕业生吗?单片机开发相关的招聘需求,我几乎都满足不了,骗不了人。
如果我现在出去招聘嵌入式微控制器工程师,如果你是应届毕业生,就不要雇一个。
如果您没有微控制器开发经验,请等待我的通知。
或许你不相信,但现实就是如此残酷。
甚至在找第二份工作的时候,我也面临同样残酷的现实,面试官给我一张全英文的试卷,我完全不知道从何下手,心里极度绝望,极度没有信心。
其实归根结底还是由于自己开发经验不足,单片机开发能力差。
回想起来,我成长得很慢。
大学的时候做过一些简单的单片机程序,比较复杂的有电子钟,红绿灯时序控制器等等。
第一份工作写的程序只是if within while,while within if等等,那时候只能做出基于51内核的单片机产品。
几年后,我开始慢慢接触STM32单片机,学习了单片机程序开发框架,消息队列等相关知识……
想想自己的成长道路,感觉走了太多弯路,浪费了太多时间。
如果有人问我,如果再给我一次机会,我会如何学习 MCU 编程?我会先学什么?我该如何开始?
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.通过实战掌握单片机程序开发
学习理论非常枯燥,而且很耗时,如果时间太长,就会失去继续学习的兴趣和毅力。
我们学习的目的就是为了实际应用,那么为何不通过实际应用来掌握单片机程序开发的理论知识呢?
有了单片机程序开发的基础,以及一些简单的单片机基础之后,就可以直接开始进行一些简单项目的实际应用,然后一步步进行。
当实战中遇到问题时,先学习相关的理论知识,然后再进行实战开发,这样学的会更扎实,更有效。