怎么提高单片机编程水平?
大家好,我是无际,无实战不理论,下面是我从事单片机编程10年的终极程序。
对于怎么提高单片机编程能力,作为一个过来人,我感触很深!
工作的前3,4年,做过一些产品,自以为自己的水平还算可以了,直到去了一家创业型迷你公司…
公司研发配备了一个硬件,同时缺一个软件,正好我倪补了这个坑。
面试的时候,老板给我看了一些物联网主机,问我能不能做?
我一脸懵逼,完全没底,但是当下形势不好找工作,即便不会也要硬撑装逼,淡淡回了一句:没问题,然后把我会的跟老板说下大概实现方法,不会的一律不提!
同时,我还为自己留了一条后路,补了一句:这种产品我们前期去做可能会周期很长,前期都要评估下双方,我觉得先从小产品做起,你认可我技术,我也认可公司了,大家再深入合作。
老板连连点头:嗯嗯嗯。
我内心想的是:能混一个月工资是一个月吧,一开始就给我打boss,估计很快就要GG了。
就是这个迷你公司,成为了我编程能力大幅提升的一个转折点(我离开的时候,这家公司换了更大的地方,也组建了工厂,研发也达到了6个人,也算对得起公司了)。
进入这家公司后,前期那些产品都做的很顺利,都在掌控之中。
但是纸始终是包不住火,后面公司规划要做一款物联网主机,带APP控制。
在规划的时候,心理大概都有底,知道程序怎么去写。
反正代码怎么写都能实现功能,应该问题不大。
但是真正去做的时候完全不一样,代码怎么写都不满意,还有实现了这个功能,写另外一个功能的时候发现跟别的功能有冲突。
还有物联网主机,都是需要实时跟云平台进行数据交互的,比如说心跳这些,再加上其他乱七八糟的数据,我怎么能够把这些数据都完整地接收到,不丢一个字节?
除了这些,还要处理其他语音,按键,LED特效之类的功能。
还要跟app联调,有时安卓能实现,苹果不行,代码又得想办法解决。
这个项目几乎让我崩溃,一想到这么多功能就头疼。
但是没办法,只能硬着头皮死磕,一方面对公司负责,一方面我也想提升下自己的技术。
做这个项目,我每天上班基本第一个到公司,下班最后一个走,困了就喝一瓶红牛或者咖啡扛着。
解决这些技术上的问题,我主要用了2个方法:
1.网上搜每个问题的解决办法
2.翻阅以前公司老工程师写的代码,看是否有同样的应用场景,他们是怎么写的。
过程是非常烧脑和煎熬的,不断学习,不断尝试,我的发际线就是那个时候变稀疏的。
熬了2,3个月,终于把产品熬出来了,不过有点可惜的是,APP不稳定,很多技术没解决,比如说离线推送。
物联网产品就是这样,光自己做再好,云平台APP不给力也白搭,做硬件的公司又不可能自己去做云平台和APP(成本太高)。
不过这个产品带给我的收获是巨大的,说转折点一点都不过分。
做中大型的产品,如果你做不出来,肯定是忽略了2个方面:
1.程序架构
2.程序算法
程序架构是最重要的,会直接决定你产品的稳定性,好的程序架构肯定是基于模块化编程的。
程序算法排在第二,程序算法决定你产品的执行效率,不过如果你产品对实时性要求不是在us,ms级别的基本可以忽略。
想提升算法能力比架构要难很多,不同的产品算法也不一样,有些还要求你有很强的数学计算能力,这块我自认自己还做的不够。
那面重点来啦!!!
无际绝对不是吹完牛逼就走的人,还要给各位小伙伴提供解决办法!
程序架构这块我在19年正好录了一套视频教程,本来想付费的,后面一忙起来,懒得去折腾,干脆无偿分享给大家。
里面讲了很多C语言高级语法的实际应用,比如说写任务调度、队列、回调函数等,也提供了很多实际产品会碰到的痛点,比如说多按键多功能检测,LED特效、串口接收数据处理方法。
想要源码和视频文件的可以到【无际单片机编程】公号拿,懒得下载的直接去小破站找我名字看就行。
算是带大家走个捷径吧,都是自己多年心血总结出来的精华,可遇不可求!
大家安排个双鸡不过分吧?(可怜无助表情)
怎么提高单片机编程水平?相关推荐
- 提高C#编程水平的50个要诀[转载]
一篇旧时的文章,看后觉得还可以,特别贴出来. 提高C#编程水平的50个要点: 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 ...
- 如何提高团队编程水平
如何提高团队编程水平 发布时间:2012-01-31 17:53 来源:伯乐在线 分类: 程序员 都等你发言 :) 分享到: 过去一年半里,我在为Mendicant大学(Ruby开发者 ...
- 我是怎么提高单片机编程能力的?
我对编程的兴趣源于黑客- 没想到最后竟然走了单片机开发的路线,或许是现实不允许我有梦想. 黑客的成长过于漫长,而我当务之急是找份工作糊口. 我并不是计算机专业,临近毕业对编程也一窍不通. 第一次自学的 ...
- 如何快速提升单片机编程水平?
大家好,我是无际单片机编程团队徐工 "嵌入式单片机开发到底怎么样?" 今天有个兄弟问我,我也不怎么好直接回答他,我就给他简单讲了一下我的一个成长经历. 我是在2018年参加学校电子 ...
- 提高计算机编程水平,写程序10大习惯和如何提高编程能力
如何提高自己的编程能力 1. 扎实的基础.数据结构.离散数学.编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序.据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软 ...
- 怎么提高python编程水平_编程新手如何提高编程能力?
有些朋友给我留言说,兴致满满的开始自学编程,但是拿到一堆书,却不知道从哪开始,最后的结果就像下面这个图: 下面结合我之前的学习经历,如何从零基础慢慢提高. 1.首先,给你的学习编程一个重要的意义 做任 ...
- 提高C#编程水平的50个要点
1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之间,优先使用 as 操作符 4 ...
- 提高C#编程水平的50个技巧
转自:网络 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之间,优先使用 a ...
- 提高.NET编程水平的50个要点(转载)
1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之间,优先使用 as 操作符 ...
最新文章
- Linux系统的大小端模式
- Juniper SSH防护
- MPB:林科院袁志林组-一种简易的植物组织表面消毒装置
- 朴素贝叶斯算法应用实例
- 修改Xmodem/Zmodem上传下载路径
- -webkit-scrollbar
- mstsc局域网远程 要预先做的设置
- 华为鸿蒙系统技术细节盘点
- 2020牛客国庆集训派对day4 	Digits Are Not Just Characters
- 公式太多,读不懂? 一文带你领略KNN近邻算法~简单易懂
- python字符串_四、Python的字符串
- 02_感知机_统计学习方法
- KDDCUP CTR预测比赛总结
- 设计师常用网页小图标大全
- JAVA 函数的重载
- 第一章 网络操作系统概论
- 1044 mysql_MySQL 常见错误 ERROR 1044
- 一个简单的BitTorrent客户端实现(二):种子文件解析及信息保存
- 诺基亚推出全球最快路由器 瞄准苹果等网络巨头
- 安装Proteus8.9后出现找不到module或者default文件等问题以及运行仿真后报错显示,例如:Cannot find model file ‘APDS9002A.MDF‘.