大家好,我是无量,无实战,无理论。下面是我从事单片机编程10年的终极程序。
作为一个有经验的人,对于如何提高单片机的编程能力深有感触。
(资料图)
工作的前3、4年,做了一些产品,觉得自己水平还可以,直到去了一家创业型mini公司…
R&D公司配备了一个硬件,同时却缺少一个软件,而我正好弥补了这一点。
面试的时候,老板给我看了一些物联网主机,问我能不能做。
我看着不知所措,我也没什么想法,但是目前的情况不好找工作。就算做不到,我也要坚持下去。我淡淡的回答:没问题,然后我跟老板说了怎么实现。别的我就不提了!
同时也给自己留了后路,补充道:我们前期做这个产品可能需要很长时间,前期还要评估双方。我觉得应该先从小产品入手。你认可我的技术,我也认可公司,我们可以进一步合作。
老板连连点头:嗯嗯。
我心里想的是:我可以拿一个月的工资吧?一开始给我一个boss,估计很快就能GG了。
就是这个迷你公司,成为了我编程能力大幅提升的转折点(我离开的时候,这个公司换了个更大的地方,设了个工厂,研发达到6个人,对得起公司)。
进入这家公司后,前期的产品都做得很好,都在掌控之中。
但是纸不可能永远不着火。后来公司打算做一个有APP控制的物联网主机。
策划的时候大概心里有底,知道怎么写程序。
反正代码怎么写都能实现功能,应该问题不大。
但是真正做起来就完全不一样了。代码怎么写的我不满意,已经实现了这个功能。当我编写另一个函数时,我发现它与其他函数冲突。
还有物联网主机,都需要和云平台进行实时数据交互,比如心跳,还有其他杂乱的数据。如何完整的接收这些数据,不丢失一个字节?
除了这些,我们还必须处理其他功能,如语音、按键、LED特效等。
还得用app调试。有时候安卓能实现,苹果不能,代码得想办法解决。
这个项目几乎让我崩溃,一想到这么多功能就头疼。
但是没有办法。我只能硬着头皮去死。一方面,我要对公司负责;另一方面,我想提高自己的技能。
做这个项目,我基本上每天都是之一个上班,最后一个下班。当我困的时候,我会喝一瓶红牛或者咖啡。
为了解决这些技术问题,我主要用了两种方法:
1。在线搜索每个问题的解决方案
2。翻翻之前公司老工程师写的代码,看看有没有同样的应用场景,他们是怎么写的。
这个过程非常烧脑和痛苦。我不断的学习和尝试,发际线在那个时候变得稀疏。
过了2、3个月,终于把产品弄出来了,可惜APP不稳定,很多技术没有解决,比如离线推送。
物联网产品就是这样。自己做再好,云平台APP也没用,硬件公司也不可能自己做云平台和APP(成本太高)。
不过这个产品给我带来了很大的收获,说转折点一点都不为过。
如果你做不出中大型产品,那你一定忽略了两个方面:
1。程序架构
2。程序算法
程序架构是最重要的,会直接决定你产品的稳定性。好的程序架构肯定是基于模块化编程的。
程序算法其次,程序算法决定了你的产品的执行效率。但是如果你的产品实时性要求不在美国,MS级别基本可以忽略。
提升算法能力比架构难多了。不同的产品算法不一样,有的需要你有很强的数学计算能力。我觉得我做的还不够。
重点来了!!!
无尽绝对不是一个吹牛逼就走的人。我必须向我的朋友提供解决方案!
我在19年录制了一个节目的视频教程。本来想付费的,后来忙起来就懒得折腾了,干脆免费分享给大家。
C语言高级语法有很多实际应用,比如写任务调度、队列、回调函数等。,以及很多实用产品会遇到的痛点,比如多按键多功能检测,LED特效,串口接收数据处理方法。
如果你想要源代码和视频文件,可以找我。懒得下载的话就去小broken站找我的名字吧。
让我们走捷径。是我这些年打拼的精华,可遇不可求!
每个人安排一个双鸡也不过分吧?(可怜无奈的表情)
关键词: 单片机