我是怎么提高单片机编程能力的?

发布时间:2022-12-16  

我对编程的兴趣源于黑客…

没想到最后竟然走了单片机开发的路线,或许是现实不允许我有梦想。

黑客的成长过于漫长,而我当务之急是找份工作糊口。

我并不是计算机专业,临近毕业对编程也一窍不通。

第一次自学的是java,学完基本语法,好像懂了,又好像啥都不懂。

通俗点讲,就是做项目毫无思路。

后面接触到了单片机,深入了解后,发现这个编程简单,有java基础学c语言也贼快。

就是电路比较复杂,特别是模电,还好后面发现并不需要太深的模电功底。

果断买了块开发板,按着教程顺藤摸瓜,一个多月基本把开发板上的功能都实现了一遍。

历史总是惊人的相似,虽然单个外设功能都会用,但一做项目就一脸懵。

后面又做了一个智能小车项目,买了配件,也没视频教程,就看商家提供的教程死磕。

最后又自己独立写了一遍,做完以后明显感觉自己水平提升了。


主要有几方面的提升:

1.学会看别人的项目代码了

这个能力特别重要,虽然看的过程比自己写还痛苦,实际工作中也经常要去看别人写的代码。

刚开始公司也不会让你去研发产品,会让你维护老产品,改代码。

后面你想提升,也需要有这项能力。

2.编程思维

也就是实现功能的思维,这个也是非常重要的。

如果你没做过这种功能,最好的方法就是学习别人的实现的思路。

一般某种功能,你做过了,下次做就懂了。

这个只能不断通过项目去积累,在开发板上学不到。

3.编程水平

懂实现的思路和你能用代码写出来又是两码事。

我的办法还是先模仿别人的代码,然后分析他这样写有什么好处。

过程也是比较痛苦的,但是随着你经验的积累,后面会越来越轻松,最终达到望眼欲穿的高度。

做完智能小车不久,我就找到工作了。

刚开始接触最多的是STC51和NXP的单片机。

工作了2,3年左右,基本大多数的单片机产品我都能把代码独立写出来。

那个时候感觉自己已经很牛逼了,单片机编程太简单不能满足自己了。

直到后面去到一家做导航的公司,有涉及到GPS、菜单、雷达检测等功能。

我才知道自己的水平有多渣,才知道以前做的产品都太简单了。

这家公司让我的水平也提升了不少,以前一直不知道多级菜单怎么做,从那以后知道了。

主要还是看老工程师代码学出来的,掌握看懂别人代码的能力很重要,能贯穿你整个职业生涯。

可以说那1年不到的时间顶我前面做2,3年。

有时候不是说你做的越久,水平越厉害,关键还是看你周边有没有高手可以学习。

你在公司做1年,基本对公司产品就很熟悉了,都是同类型的,可能改改电路改改代码就是一款新产品了。

呆久了,对你来说基本都是重复工作,水平提升也很缓慢。

这是我第一次水平有较大的提升,也重新刷新了对单片机编程的认知,并没想象简单。

第二次是后来跳槽到一家做物联网网关的公司,有语音、菜单、无线数据软解码、OTA、4G、Wifi之类的功能。

这应该是我有史以来碰到过最复杂的一个产品了。

类似于我们无际单片机编程实战课程里的第三个项目。


只是为了很多基础差的学员能快速上手,我把一些产品功能简化了,尽量留下最常用最核心的东西。

虽然做了这么多年,但是让我独立去做这个产品还是很吃力的。

主要是功能太多了,脑子就容易乱,不知道该怎么整合。

做这个项目之前,我还把以前上班那些老工程师的代码又重新研究了一下,看有没有什么能用的东西。

就这样,一个地方拼凑一点,最后再慢慢消化创新形成了自己的东西。

这个项目我大概做整整一年,最后还是没做稳定,因为那个时候第三方云平台都不成熟。

主要是底层协议有漏洞,还有app不是很给力,导致用户体验感很差。

比如做离线推送功能,总是有很多型号的手机推送不了的。

所以,做物联网的产品,很难做稳定就是这个原因。

涉及的东西太多,不是硬件稳定就行,还得看云平台和做app的经验是否足够丰富。

再加上联调都是远程沟通,很多细节很难理解到位,开发周期也长。

这个项目对我的成长是最大的,就是有点费红牛。

只要没特别的事,每天早上我基本都是最先到公司,公司也是初创公司。

老板每次看到我都很感动,这么上进的员工不多了。

其实我是对这个项目很感兴趣,一直想做这种中大型项目,就是没机会。

我和大家的想法其实是一样的,就是想尽快让自己具备独立做项目的能力,不管大小项目。

有时候,我经常在想,如果第一份工作那2年,就能接触到这种项目并有人带。

或许我2年就能达到别人5年甚至以上的水平。

再后面,就是接触了蓝牙协议栈之类的开发,有了前面的沉淀以后,研究起来轻松多了。

蓝牙协议栈的系统算是我目前接触到比较好的非RTOS了。

所以,我决定把它精简以后,移植到STM32上面来,以后为我所用。



虽然之前也写过一个经过批量验证的程序架构,但毕竟还是简陋了一点。

比如说队列功能,只能入列和出列字节数据,如果能传输任意数据类型就更灵活了。

这个架构也是开源的,并在19年随便录了套视频,有兴趣可以去看看,对编程水平提升还是有挺大帮助。



教程已上传各大平台,直接找无际单片机编程就有了,全网同名的。

最后总结:想快速提升自己编程能力,还是得不断通过项目积累,但也是有捷径可走的,就是跟资深工程师做项目,同样是积累,效率天差地别。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    躺平不可取躺赢不可能! 如何提升单片机编程水平;现在大多数从事单片机行业的一般会选择软件开发。 大家在编程的时候,有没有一种感觉就是 功能基本上都能实现,但是总觉得自己的编程,缺少了一点东西。不够......
    不断积累经验和技巧,提高编程水平。   需要注意的是,数控切割机编程是一门技能,需要不断地学习和实践才能提高自己的编程水平。 ......
    有意义。等你在做移植的时候你觉得你必须去看源代码时再去找基本好书看看,这里我推荐一本好书倪继利的《linux内核的分析与编程》,这是一本针对linux-2.6.11内核的书,说得很深,建议先提高自己的......
    还缺两种能力: 1.项目思维 也就是给你一个功能需求,它会用到单片机什么外设?数据如何采集?或者用什么信号去控制?逻辑功能怎么用程序去实现它? 2.编程水平 等你有了思路,你还得有一定的编程水平......
    如何快速提升单片机编程水平?;“如何快速提升单片机编程水平?” 今天有个兄弟问我,我也不怎么好直接回答他,我就给他简单讲了一下我的一个成长经历。 我是在2018年参加学校电子大赛的时候,开始......
    千万不要把眼光局限在单片机。 从事单片机开发,其实单片机只占很小一部分,虽然没了它不行,但是我们一般都是会用就行,核心还是在于如何提升自己的编程水平和项目经验上。 这是......
    觉得例程不可靠就把它修改过来,成为自己的程序。不仅如此,自己应该经常找些项目来做,以巩固所学的知识和积累更多的经验。 第三步:单片机硬件设计 当编写自己的程序信手拈来、阅读别人的程序能够发现问题的时候,说明自己单片机编程水平......
    一下会有什么反应。 做到以上三步,基本上你就能吃透别人的代码。 学会看懂别人的代码是一项非常重要的能力,我的编程水平都是这样去提升的。 很多时候虽然你重写代码也能实现同样的功能,但是其中涉及到2个东......
    是为什么很多企业一听到培训机构出来的都拒之门外。 如果是做单片机开发的,其实主要还是你的编程水平和思维,所谓的项目经验,追溯到底就是你的编程思维。 比如说给你一个功能,你有哪些实现的思路和方法,而这......
    19年随便录了套视频,有兴趣可以去看看,对编程水平提升还是有挺大帮助。 教程已上传各大平台,直接找无际单片机编程就有了,全网同名的。 最后总结:想快速提升自己编程能力,还是得不断通过项目积累,但也......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>