很多人打算从事嵌入式开发,当然,万物都有其运行规律,那么,嵌入式开发学习过程有什么特点呢?这篇关于嵌入式开发的心路能给我们提供一定的帮助。作者目前还只是个初入门的嵌入式的新手,但自己学习嵌入式这个方向也有1年半多了,因此在这里写下自己的这些时间的心路历程和学习总结,以及对嵌入式学习的看法,希望对大家学习嵌入式有更好的帮助。文章中的观点只是我个人一些的看法,不一定适合于每个人。对于文章中的任何错误希望大家批评指正如果因为本篇文章的写法风格的问题而引起您的不适,请多多谅解

一、经历篇

本篇是我从零开始学到现在的心路历程,时间不短也不长,1年半吧,对于很多学习了五年甚至十年的技术性大佬来说可能微不足道,但对我来说是一段很值得回忆的经历,对我现在以至于未来都会深有影响,因此在这里写下自己的历程,希望想要接触或者刚进入技术领域的人有所帮助。

本人通信工程专业,大一刚进校时,由于刚到新世界,以及对任何东西的不认识,当了一整年的咸鱼。

到大一下开始接触C语言,大二学习51单片机开始,我的嵌入式学习之路就开始了,先学完51单片机,接着学习STM32单片机,大二下,参加比赛,过程中学会了基础的PCB画板与Python,并学习了一点RT-Thread操作系统,大三上,回顾单片机知识,开始写博客,看《C和指针》,学习数据结构与算法,学习了java基础,到如今参加华清远见培训,学习Linux操作系统。

1、梦的开始-C语言

C语言,emmm。。。

不知道多少人是因为C语言才踏上技术开发这条道路的,但我不得不说,不愧是屹立40多年的经典语言,从最开始 看B站小甲鱼自学 到 学校课程C语言的学习 到 看B站鹏哥C语言教学 在到 如今的华清培训的C语言复习,前前后后总共学习了4遍,之间还不断运用,以及通过看数据结构与算法与C和指针,依就没办法将它用的出神入化,之后还得不断学习。

2、我与单片机的故事

51单片机是我学完C语言后,接触的第一个嵌入式硬件,开始学习的时候,我买了一块普中科技的开发板学习,不过现在已经吃灰了

第一次买回来的时候,感觉特别新奇和喜欢,上面的各种按键、LED、数码管都给了我极大的兴趣,这也是我入坑的原因。

果然,兴趣是最大的老师。

后来我制作了我的第一个红外寻迹+超声波避障51小车

并不好看,因为线都是我手工焊接与连的,但确实我的第一个作品。

在51学完后,我开始了stm32的学习,32的学习比51难很多,但它也因此比51的功能更强大,性能更好。

最开始我又是买的普中的开发板进行学习,在我写的关于stm32的博客中,使用的就是这块开发板,我从标准库开始学,后来由于太难且操作繁琐,我经过学长的建议,转向了HAL库的学习,并在认识了Z小旋、mculover666等大佬,他们的开发教程给了我很多帮助,在此特别感谢。

后来我选择重新对标准库进行学习,为什么呢?

因为标准库更接近底层,可以让我知根知底,知道为什么该这样配置,也能让我对单片机的理解更加深入,不至于只会调库。

但是我还是推荐大家从HAL库开始学,可以用cubemx直接生成工程,简单比较容易上手,而且ARM公司对标准库在2011年时已经停止更新了,在2022年的时候才进行了一次小更新,如今ARM公司主推HAL库,但对于想知根知底的开发者来说,标准库是个不错的选择。

3、Python、java与PCB电路板

python的学习是因为自己有一个项目需要用到openmv摄像头,而openmv需要用到python语言,这时候,我才了解熟练一门语言后,再掌握其他语言有多快,由于熟练掌握C语言,在学习Python语言的时候,我学了2个星期,就可以对Python语言实现基础的使用,学习java基础的时候同样如此,因为想数据结构、语法有很多相似的地方,可以类比学习。

因此我建议初学者来说可以先熟练掌握一门语言后,再去对其他语言进行学习。

在学习32的过程中,我对电路原图进行了认识,加上在学校课程上,学习了模电和数电,我开始了PCB板的学习,在这里我推荐大家使用国产免费开源的立创EDA来绘制PCB电路板,在B站上也有免费的学习教程,而且它支持绘图、元器件购买、打板一条龙服务,特别方便。

勉强可以用,当时焊芯片的时候弄坏几个,而且又碰上芯片涨价。

心痛啊!!!

4、比赛

对于学技术的朋友,我特别推荐去参加比赛,因为不仅能将你学习的技术拿出来运用,还能提升你的团队协作(1个人单干完全部除外)、演说能力、临场反应能力等等,还可以学习新的知识,得奖时还会有特别的荣誉感。

最开始我参加比赛还是拿着上面那个51小车去参赛,结果理所应当没得奖,但是锻炼了我的项目制作能力,以及对知识的运用,后来逐渐参加各种比赛,周期长的两个月,结实了很多志同道合的技术学习者,冲进过国赛,拿过几个国奖。

在此特别提醒,一个项目不是那么容易完成的,像我有时候调一个代码的bug就得弄几个小时或者一整天,最怕的就是,比赛过程作品突然出问题,每次比赛我遇到好几组都是这样的,比赛前没问题,比赛的时候就各种失灵,特别是在作品讲解的时候,讲到一半的时候,一个功能突然失效了,就很尴尬。

因此在比赛前一定一定要保证作品正常运转。

5、Linux

到如今我正在学习的知识,相信大家都不陌生,在学完C语言后,我们也可以直接选择进行Linux的开发学习,网上有很多介绍,这里我就不过多讲了。

6、关于自学与培训

是自己一个人学还是报一个培训机构学习,这各有各的好处,现在网上也不缺学习资源,想CSDN、B站学习资源一大堆,你可以选择自学,但培训也有很多好处,像华清远见,除了可以有大量的学习资源,还有老师随时随地在线答疑,有问题的时候可以随时问,而且学习走阶段化,避免了自己盲目学习以及消耗大量的时间去改程序bug,还有每天打卡督促学习。当然无论是自学还是培训,学习还是得靠自己。

7、CSDN

刚接触CSDN的时候,还只是单方面的索取学习资源,到现在我也能分享自己的学习给其他人了,在此特别感谢CSDN平台给予我的帮助,也希望以后我也能帮助跟多的人,以后的文章我也会不断优化,加油!

二、学习篇 1、手脑并用、学做合一

这是我们学校的校训,但也因此说明了理论与实际相结合的重要性,特别是在学习知识后,一定一定要动手去做,像代码一定要动手去敲、去练,硬件要自己动手去画、去焊,单纯的看完知识==没学。

2、温故而知新

学完一段知识后,可以等待一段时间再去快速的学习一遍,像我C语言学了四遍,32学了在学,有可能我还会再学。当你重新在学一遍时,就会发现很多自己没考虑到的东西,然后思考改进,自己也就能跟进一步。

3、学习靠自觉

学习这事吧,不要让别人拉着你去学,想玩可以,是个人都想玩,但一定要完成自己每天制定学习的任务,要能主动。

我们永远也叫不醒一个装睡的人,也同样也喊不动一个不想学的人。

三、思想篇 1、自强不息

无论学习也好,生活也罢,一定要不断思考如何提升自己。

太阳每天升起、落下,你见过它有停下来休息几天的吗?我们不能像太阳一样规律,但我们可以选择每天提升自己。

2、厚道载物

学习技术也不是说就只顾自己的学习,生活就不顾了,因为我们做技术的目的,除了自己的兴趣也是希望依靠技术养活自己与自己的家人,也需要接触生活中的人情世故,因此需要不断涵养自己的德行。

3、修得本心,方能成真

目前我只是嵌入式道路上的一个初学者,还做不到指点他人的地步,像我知道的一位酷壳的大佬,别人技术都已经这么成熟了,但还是谦虚的说自己40多岁后在出书。

我写博客的目的除了自己做笔记好复习,另外也能分享给其他人参考学习,因为我知道自己有几斤几两,目前来说学习技术为主,这是我的初心。

到这里就结束啦!谢谢你能看到这里,希望我们能一起学习共同进步!

以上为学习嵌入式开发的过程,记录了作者的一些感悟。

@修成真