写在
前面
对于目前在校生来说,门槛最低的一类科技创新应该是围绕着单片机展开的,也就是控制类,因为投入成本不 高,资料相对完善,不很吃经验,容错性强,也容易得到成就感。当然对硬件有兴趣的也可以从硬件方面如PCB开始,这方面我了解不多,所以本文还是从单片机控制类展开。
硬件准备及开发安装环境
·硬件方面
其实最基本的学习只需要一个stm32板子和仿真器就足够了,但是不要图便宜买核心板,舍得点钱买开发板绝 对可以省很多功夫。
比较推荐的两家店是秉火和正点原子,两个板子质量都还行,例程风格稍有不同,资料都比较全面,看喜好购 买即可。对于入门来说,还是推荐买F1和F4系列,F7(tips:关于型号,你就姑且认为数字越大越牛逼吧)对 目前能接触到的大部分项目来说性能算是有些过剩,没钱就买F1吧~_~ ,F103ZET6 F103VET6
同时别忘了买仿真器,可以买秉火家的DAP仿真器,即插即用不用装驱动,不过接口比较恶心,可能核心板就 不太好插了。还有就是ST-link和J-link,我身边人用的比较多的是J-link,不过我有一次重装KEIL后J-Link因为迷之驱动问题不能用了,只好用st-link,可能是我比较菜吧。如果怕遇到同样驱动问题就买st-link。
·软件方面
stm32用的是arm自家的KEIL作为IDE(集成开发环境),这里插一句,stm32采用的是库函数开发的方式,就是 官方写好API(函数接口)你直接通过调用函数实现操作,而不是很恶心的操作寄存器(汇编写51体验过没?), 这样可以大大提升开发效率,避免重复造轮子。目前stm32有两种库,STD库(标准库)和HAL库,从目前 的趋势来看HAL库是今后的主流,STM32F7系列只有HAL库,而F4系列也不再更新标准库只更新HAL库。不过就 我校生态来看标准库还是主流,而且标准库经过多年打磨资料也比较多,所以这里就从标准库开始说,如果学 有余力也可以接触接触hal库。
如果是标准库开发的话,装好keil及其芯片包,再装你相应的仿真器驱动就完全ok了,如果是hal库的话似乎还 要装个啥啥cube,我比较菜不太了解。
至于软件的安装和工程的建立,重复造轮子这种事我不太愿意干,再说秉火和原子的资料都比较全面,可以按照书或视频一步步来。
当然,最好买一些诸如电机,电驱,按键,显示屏,超声波之类的外设,毕竟控制得有控制对象
知识储备
上文也说了,单片机算是科创中门槛比较低的,所以知识储备要求也不是非常高~
·c语言
1.基本的操作(声明变量,判断循环,函数)
2.深入理解指针
3.深入理解结构体和共用体
虽说说起来好像很少,但是语言这种东西很容易眼高手低,还是需要大量练习,再简单的知识都最好亲手操作 一番,如果感觉c语言还要补补课,这里推荐C primer 这本书,以及中国大学mooc翁恺老师的课。
·电类方面知识
1.起码你得知道12v不能直接供电给单片机吧-_-
2.学会使用烙铁
3.基本的数电知识,如会看真值表,会看时序图,会看总线框图
·简单的自动控制方面
知识比如知道什么叫闭环控制(这个可以后期积累)
总体来说只要会C基本就可以学单片机了,但要知道单片机仅仅是一个工具,额外的知识还要 具体结合使用场景。
正式上手学习
按照上面的硬件准备的内容,这时候你应该在淘宝上下单你心仪的板子和仿真器和一些小元件了,在这些东西到之前,我推荐你把淘宝店家给的资料全部下下来,一般是一些文档资料加上很多视频,如果习惯看书学的可以不用下视频,但文档资料一定要全全下载下来。这些资料下载之后,就可以开始愉快的学习了。
·ST官方有一本非常完善的参考手册和数据手册,并且都已经是完全汉化过的,不过根据本文的受众纯小白来 说,这两本书可能并不是非常好啃,所以对于初学者,还是推荐看两家店自己编写的教材,如秉火家的《零死 角》系列,这些书相当于是对官方手册的一个再加工,让其达到初学者能够接收的程度。在你真正上手单片机 前,我还是推荐把这两本书关于单片机介绍的部分看一看,也可以酌情往后看。当然也可以跟着视频来学。在 今后的学习中,建议不要完全脱离官方手册,毕竟两家店的书算是“嚼过的东西"可能还是会有纰漏,之前看不 懂没关系,随着你学习的深入,你会越来越能理解官方手册的内容。
建立第一个STM32工程。之前说过,STM32采用的是库开发的方式,所以这里希望你可以自己亲自建立一个STM32的库函数版工程,虽说网上空白工程模板一大堆,但是自己亲手做一遍绝对可以让你对库开发的理解,以及keil软件的使用技巧更进 一步。所以这里希望你可以按照书或者视频的内容,一步一步自己建立一个工程,最后使之能够成功下载到单 片机里。第一次做可能有很多坑,希望能够耐下性子,多google,多看论坛,自己独立解决问题。
南航自动化科协 |