虽然现在stm32单片机很火,很多招聘的公司都要求必须要会stm32,但是我依然建议新手从51开始学起。
这也是当初我自学的路径,51相对简单,新手可以在短时间内学习见到效果,比如说做个流水灯,让数码管显示一些数字之类的。
学习技术过程是非常枯燥的,学着学着容易焦虑和放弃,单片机还好,至少还能控制硬件去完成一些智能的控制。
如果是纯软件更学不进去,学来学去只能在冷冰冰的屏幕面前打印字符。
作为新手,想要学习单片机,第一步先是要把环境搭建起来,哪怕是直接用别人的工程,编译烧录到硬件上看看效果都很有成就感。
这也是很多人忽略的一个过程:培养学习的兴趣。
这点非常重要,你没发现当你对一件事物有兴趣的时候,学起来又轻松又快。
一般单片机的编程语言有两种:
1.c语言
2.汇编
以前我们那些学校相关专业的都是教的汇编,其实汇编我个人认为前期没必要学。
因为我工作了10年了,真正用到汇编的就是移植RTOS的时候,而且和学校那些还不一样。
每个芯片有些指令集是专用的,所以很多人在不同芯片移植实时操作系统的时候会发现还是有很多指令看不懂,这也是正常的。
这些汇编指令,只要你用到的时候去查阅就可以了。
我建议是重点学习一下c语言,这也是作为一个工程师必备的技能,针对单片机c语言入门教程我们也有录了一套,可以直接在小破站搜无际单片机编程看。
单片机编程一般是在Keil开发工具里去写代码,写完以后用Keil来编译代码,生成hex文件,把这个文件下载到单片机里面去执行。
这块的环境搭建比较简单,大家通过视频去看,然后跟着视频操作一遍就会了。
学习单片机最重要的是要有一套开发板,也就是基于单片机开发的硬件。
一般这种硬件都配套了有相应的视频,所以学习门槛还是挺低的。
51的话我建议是选择stc的51单片机,直接通过串口烧录,比较方便。
我刚接触单片机的时候选择不多,我买的是郭老师的开发板,到目前为止我都觉得比较适合新手入门。
课程也比较详细,基本上基础部分电路、单片机、c语言是一起讲的。
学完开发板的内容以后,做个小项目,基本上也算是入门了。
入门以后你的提升方法就不是开发板了,而是做项目,最好是实际工作那些产品。
拿来练练手,自己先想一下功能要怎么实现,然后再看看别人是怎么写的,他这样写有什么优势和缺点。
这就是成长的过程,开发板只能教你学会单片机外设的使用,但是教不会你做项目,实际项目对成本、体积、功耗都有一定的要求。
单片机的产品来来去去其实就是那几个接口,串口、SPI、IIC、ADC、SDIO、FSMC…..
当你做过的产品都玩过这些接口以后,单片机对你来说就只是工具而已。
更重要的还是你的c语言编程的水平和思维。