无际单片机编程

公号【无际单片机编程】拿入门到高级教程工具包

  • 博客(363)
  • 收藏
  • 关注

原创 单片机入门到高级开挂学习路径(附教程+工具)

一、先帮大家解答几个问题:1. 单片机是什么?答:单片机就是一个微型CPU,把程序烧录芯片里面,通过控制不同的外围电路实现不同产品的功能。2. 学单片机编程对数学英语有要求吗?答:数学会基本的加减乘除就行,英语会认单词a-z就行,很多外行人看到代码里一堆英文就头嗡嗡响,其实不然,只有少数语法是固定的,大多数英文都是工程师自己定义的,比如大神你也可以定义成DaShen(中文缩写)。那很多人此时就开始质疑,当初这么辛苦学数学和英语到底是为毛?数学和英语不是单片机开发的门槛,但却决定你以后能达到的高度,

2021-02-26 15:27:26 69705 33

原创 代码能力弱,编程思维几乎没有,有些勉强能看懂,让自己敲,一脸懵逼?

当初,我在设计无际单片机特训营的项目时,就很想采用这种方式,先给老铁们项目源码,然后提要增加/修改的功能,让他们自己先和脑细胞撕裂一下,尝试修改源码去实现功能,最后再看教程,这样理解绝对透透的。因为你想改代码改功能,必须得先把原有的代码看懂,才能改,否则改出来,就像破了几个洞的,然后用胶布粘住的水管,这里改,那里又冒了个BUG出来。最近有几个人问我,说自己代码能力弱,编程思维几乎也没有,简单的代码,勉强能看懂,让自己敲,就一脸懵逼,下一步该怎么学习?我也纳闷,难道是我的学习方式,方向不对吗?

2024-07-11 15:53:30 537

原创 【无标题】

刚开始,尝试抱着一本厚厚的电子元器件手册啃,又感觉看书过于枯燥,又下载了几十G的视频教程,结果跌入魔法电路的深渊,仿佛在学一门高深莫测的数学课,因此陷入无尽的学习死循环。不再单独去学电路了,转去学开发板,因为很多开发板,在实践的过程中,也会讲到元器件及电路,而这种边学边用的方式,更好理解。我收集了一些经典电路参考图,在设计相关功能的时候,可以借鉴或者在此基础上改,可大大提高效率,需要的可找我安排。后面我也意识到,学习硬件,不应该从理论出发,而应该从实践入手,最后再以实践结果,倒推理论巩固。

2024-07-10 11:03:18 821

原创 单片机软件架构连载(5)-队列

前面讲了指针、结构体之类的基础知识。这篇内容开始,就要对这些基础知识,做一些复杂的应用了,比如说队列。其实,在2018年的时候,我录制过一套程序架构的视频,里面有手把手写队列的教程,讲了一系列贴近实际的高阶编程思维和技巧,受到了很多粉丝朋友们的好评和认可。但由于教程录制的比较早,音质比较差,还有一些细节不够完善。所以这根刺,一直扎在我的心里,为了让无际单片机特训营的铁子们,在学我们项目时,能更高效,更好地理解,最近计划把这些基础内容,重新梳理一遍,做成一个系列的软件架构2.0图文/视频教程。

2024-07-08 16:53:46 813

原创 单片机软件架构连载(4)-结构体

语法如下:这里的结构体名是你自定义的名称,用于之后引用这个结构体类型。示例代码:每个类型后面跟着的是结构体中的成员变量,它们可以是基本数据类型,如char、short、int、float等,也可以是其他结构体类型,比如指针,结构体类型。定义好结构体类型后,我们就可以用该类型,去定义一个结构体变量,并初始化其成员值了。示例代码:创建Student类型的结构体变量stu1,并初始化,名字为 ZhangSan,年龄 20,成绩 92.5。

2024-07-04 14:58:47 955

原创 单片机软件架构连载(3)-typedef

我们来总结下,typedef最主要的几点优势:提高代码可读性:通过使用有意义的类型名,代码更易于理解。简化复杂类型:对于结构体、枚举、函数指针等复杂类型,使用 typedef 可以简化变量定义。易于修改:如果基本类型需要更改,只需更改 typedef 定义,而不必修改使用该类型的所有实例。增加代码移植性:不同编译器或平台可能对某些数据类型的大小有差别(例如,int在某些平台上可能是16位,在另一些平台上可能是32位或64位)。

2024-07-03 10:38:02 1050

原创 单片机软件架构连载(2)-指针

变量类型 *变量名unsignedchar*p;unsigned char 是数据类型,p 是变量名。2.2指针变量赋值指针变量在使用前,一定要先赋值(指向一个地址)。给指针变量赋的值和普通变量不同,给指针变量赋值只能是地址。那么怎么获取普通变量的地址呢,在C 语言里可以使用”&”来获取普通变量的地址&变量名// 包含标准输入输出库,用于printf函数等// 定义一个无符号字符变量a,其取值范围是0到255// 定义一个指向无符号字符的指针变量p// 主函数入口点。

2024-07-02 12:01:21 1043 1

原创 单片机软件架构连载(1)-枚举(enum)

我对枚举Enum(Enumeration)数据类型的理解,是给常量另起个名字。给"1"取个名字叫True;给"0"取个名字叫False;把常量重命名以后,在程序里,相对数字能更直观地表达逻辑的对和错。// 定义一个匿名枚举类型,包含四种颜色,分别对应整数值0到3enumRED, // 枚举成员RED的值为0,代表红色GREEN, // 枚举成员GREEN的值为1,代表绿色BLUE, // 枚举成员BLUE的值为2,代表蓝色YELLOW // 枚举成员YELLOW的值为3,代表黄色。

2024-07-01 12:00:10 965

原创 掌握这招,串口通信高频收发32W数据,0丢包!

早期做pdu的时候,用485通讯,Modbus协议,我是做从机,当时没什么经验,总是做不稳定,如果是碰上那种对成本要求很苛刻的产品,比如连一个电容钱都要省的,调起来极其恶心,想把公司电脑都砸了。QueueDataOut是一个队列数据出列函数,函数内部实现了先进先出的算法,所以我们完全不用管什么数组下标,数组还有多少数据之类的,也是一次写好,无限复用,大大简化了程序。做串口的应用,把串口外设调通只是第一步,串口只是数据传输的媒介,在此基础上,两个设备/器件要进行通信,传递更有意义的信息,还需要一个通讯协议。

2024-06-14 12:22:10 786

原创 为什么说指针是c语言的灵魂?

我攻克这个难关,花了好几年时间,因为它不像单片机的问题,网上都有答案,也有例程参考,这种问题,是开发经验的问题,网上找不到资料,有也只是零零散散的。工作6,7年以后,独立做了一些复杂的项目,有物联网网关,有Ble产品,研究过协议栈和模块厂的SDK,也见过很多同事写的代码,对指针又有了新的理解。刚做开发的前两三年,我总是感觉自己写的程序,不够专业高大上,很多程序都过度使用指针,看起来更复杂显得专业点,现在回看那程序:真傻杯,脱裤子放屁。你可以简单理解成,就像人没有灵魂,废了,c语言没有指针,也废了。

2024-06-13 12:02:32 792

原创 入职嵌入式开发,第三个星期开始让写代码,要求两周完成,但是完全不会写怎么办?

做项目,一定是有清晰流程的,先把项目需要的外设调通,再把项目的业务逻辑功能,拆解成独立的小模块,一个一个地完成,每完成一个模块,都要测试好没问题,最后把所有模块整合在一起,完成整体功能。正常情况下,公司有段试用期,如果是应届,或者刚转行嵌入式开发的,一般不会直接让你独立去做项目,而是维护老项目,改改代码为主,除非是一些很简单的产品。如果我是领导,我最烦的员工是,每次问的时候,都说还在搞,差不多了,又不知道到什么程度了,然后过了一个月,说哪个功能做不出来。

2024-06-06 15:24:05 1099

原创 如何编写稳定的单片机代码?

举个简单的例子,一个LED灯指示设备联网状态,未接连上时,每200ms闪一次,连接上wifi时,每400ms闪一次,连接上路由器时,每600ms闪一次,连接上服务器时,常亮。我很多代码思维和技巧,都是学习同事的代码,我看到他们的代码时,和无际项目特训营老铁看我们代码的感觉是一样的,先是一脸懵逼,有些工作后,接触项目多了,才领悟其中的精髓。一般的工程师,会在工作了3,4年左右,才能意识到程序架构的必要性,也取决于你什么时候能有机会独立完成复杂的项目,这个时候你会发现,原来的知识体系不够用。

2024-05-30 19:04:53 724

原创 如何编写高效的单片机代码?

在做研发工程师的10年里,我经历过几个公司,看过很多工程师写的代码,但真正能让我跪着看完的,极少。用i--、i-=1、i++、i+=1、去替代i = i-1,i=i+1的操作,有些编译器对前者进行了优化,效率更高。比如数学功底好的,可以用低端单片机去实现功能,而数学功底不好的,写出来代码效率低,则需要性能更强的单片机支撑。具备这些能力,写出来的代码,才能让cpu执行这段代码所花费的时间,以及占用的ROM和RAM资源更少。然而,如果把项目每个细节,都优化到高效的程度,花费的时间,是平时的两倍。

2024-05-29 20:08:02 641

原创 工作中写单片机代码,与学校里有什么不同?

接着维护基于NXP ARM7单片机项目,相对就复杂很多了,复杂度主要体现在要自己配置寄存器,去使用单片机外设,还有整体功能多,组合起来看就有点云里雾里,不过从代码架构上,也是挺乱的。第一份工作,先是维护老产品, 一看公司产品的代码,其实跟开发板的差不多,有些代码可能还没开发板的工整,是用STC 51单片机的项目,代码也复杂不到哪去,能实现功能就行了。工作后,见过鬼,怕黑了,不想再装逼秀技术了,只想快点完成任务,有现成代码可以抄,我觉得贼幸福,领导和甲方,大概是魔鬼。目前我们特训营项目就用这些架构。

2024-05-27 20:07:33 1174

原创 怎么判断一家公司是否有前景

他目前在这家公司做了好多年了,属于公司的第一批员工,目前负责嵌入式MCU的,就他一个人,虽然没股份啥的,但万一公司做起来了,相信也不会亏待他。我说,对方挣了多少,很难评估,除非你认识他们公司内部的人。等你调查清楚以后,再对比你们公司和他们公司的运营方式,大概就能知道,这家公司接下来的命运,到底是增长,还是倒闭了。他说,没有对标具体的型号,而是对标技术,比如说射频,他们的距离能做得更远,功耗更低,数据量也更多。好在,他情商很高,买了我一个小时的时间,我才硬着头皮看完,根据他的情况,跟他打了电话交流。

2024-05-23 14:38:23 1061

原创 嵌入式软件天花板是不是不高?

我粗略算过下他们的运营成本,月光租金都要几万甚至十几万,还有人工成本,研发部6个人,一个月工资至少都得发7-8万,加上其它乱七八糟的开支,每个月固定成本都要10几万以上。工薪阶层以内,天花板有多高,和学历,行业,能力关系最大,不一定是技术深度,做单片机开发比Linux高的,也很多。而他的运营成本,估计比我们还低,自己一个人,租个小办公室,硬件,软件全自己做,然后生产外包,自己跟进下就好。前几天,有个做贴片厂的朋友和我们说,他有个客户,和我们一样,也是技术出身,然后自己做产品,找渠道卖。

2024-05-07 10:59:09 950 1

原创 干货 | 嵌入式OTA升级实现原理

早期,我对接过一些第三方云平台,有些平台,我怀疑是干java设计的通讯流程和协议,在协议设计上经验不足,如果通讯流程和协议设计不好,明明可以用一条指令搞定,最后要2,3条指令,增加通讯双方的程序难度,稳定性也会受影响。假如当前程序运行的是A部分的代码,那我们固件升级的时候,就升级程序块B部分的代码,如果程序B升级OK,则由bootLoader程序,指向程序块B区的起始位置,下次程序重启,则执行程序块B。全量升级就是每次都更新整个固件,差分升级就是更新时,会和老版本固件进行数据比对,修改的部分,才会升级。

2024-05-06 16:20:33 1197

原创 单片机编程实例400例大全(100-200)

通过按键输入控制步进电机的转动方向和速度,通过P1端口输出相应的控制信号,驱动步进电机按照预定的步进序列转动。这段代码是一个8051单片机红外通信和数码管显示的程序,程序的主要功能是接收红外信号,解码,然后根据解码结果在数码管上显示相应的按键值。通过外部中断0接收红外信号,定时器0计算信号的时间间隔,然后通过中断服务程序和主循环中的函数调用,完成红外信号的接收、解码和显示。通过P1.3,P1.4,P1.5,P1.6四个IO口,来控制步进电机,包括电机的转动方向和速度控制。除此以外,再含泪分享我压箱底的。

2024-05-02 11:22:00 1227 2

原创 单片机编程实例400例大全(1-100)

整个程序的工作流程是:通过按键输入(程序中定义了两个按键,分别用于加速和减速)改变电机的PWM占空比,从而控制电机的速度,同时,使用定时器中断服务程序来实现数码管的动态显示和电机PWM的控制。所以,我整理了100个单片机编程的实例,涵盖了很多小功能,注释也详细,非常适合新手参考,利用这些参考代码,去做自己的项目,事半功倍。就是多参考,多实践,然后碰到类似的功能,就能举一反三了,都是用时间堆经验的笨办法,没什么骚操作。但是成长效率,是你可以控制的,在同一时间内,你实践的越多,经历的越多,比别人成长的就越快。

2024-04-30 12:58:41 1297

原创 9种单片机常用的软件架构

后面有幸,接触了稍微复杂点的项目,感觉以前水平Hold不住,然后借着项目需求,学习了很多优秀的代码架构,比如以前同事的,一些模组厂的SDK,还有市面上成熟的系统。因为我在做研发工程师的第6年,才开始意识到这个东西,在此之前,都是做一些比较简单的项目,一个main函数干到底,架构复杂了反而是累赘。下面是一个简化的示例,展示如何在C语言中模拟面向对象的编程风格,以51单片机为背景,创建一个简单的LED类。事实上,真正的事件型驱动架构,是非常复杂的,我职业生涯的巅峰之作,就是用的事件型驱动架构。

2024-04-29 14:06:08 8730 7

原创 读研三年和做嵌入式工作三年,究竟哪个更值?

因为工作了,能接触到很多项目,能有不同段位的前辈指导,在学校你可能是老大,工作以后就是社畜了,不行也得硬着头皮上。前几天,和徐工出去吃晚饭,他说如果我们当初好好上学,考个清华北大啥的,或者考个研啥的,就没现在这么辛苦了。如果工作了,一直在做简单的项目,比如用51单片机做小家电,别说做3年了,做10年,水平也很难更上一层楼。这些对学历基本是硬性要求了,有些硕士,都只能进去打杂,真正的核心算法,像声呐之类的,都是博士干。我说,我是没希望了,我小学就开始沉迷游戏,知识体系落后太多了,跟不上了。

2024-04-28 16:06:08 1130

原创 单片机为什么有多组VDD?

模拟电路对电源的质量要求较高,因为电源噪声和波动可能会直接影响模拟信号的精度和稳定性,比如我们采集ADC值的时候,参考电源的稳定性,直接决定ADC值的准确性。数字电路对电源的稳定性和纯净度要求相对较低,因为数字信号具有较强的抗干扰能力,数字电源和地线的设计更多考虑的是减少数字电路内部的噪声和干扰。当所有的电流都通过单一的VDD/VSS引脚时,这些引脚需要承受更大的电流负荷,这可能会使引脚发热,降低单片机的可靠性和寿命。以前我在画尺寸小的PCB时,比较头痛,特别是芯片引脚又多的,芯片底下,又不能打太多过孔。

2024-04-26 11:51:44 897

原创 经验丰富也被裁了,失业快2年找不到工作?

可能公司辛辛苦苦开发的软件,好不容易有点火了,几个月后就被人抄了,玩到后面,90%可能都不是技术问题,而是运营能力的问题。归根到底,其实就是拼供应链,谁能拿到成本更低,质量又还可以的原材料,谁能把生产不良率控制到最低,生产效率最高,成本最低。而纯软不一样,大多都是在电脑或者手机上跑,硬件基本不变,所以很多代码生成了,都能直接运行。徐工说,你不是做了很多年了吗?经验这么丰富也被裁?我觉得没有,这种产品,拼技术是不可能了,最后都是拼品质,拼价格。小公司,运营成本低,就像我之前呆过的一家,倒闭的,好像基本没有。

2024-04-25 11:57:53 773

原创 【无标题】

这个有些老工程师很喜欢用,我一般开发STM8单片机和TI蓝牙协议栈的时候会用,个人感觉没Keil顺手,用不熟的话,经常会有奇奇怪怪的问题,比如无法go to define....这个经常也会用,有网页版也有客户端,最爽的是有丰富的元件库,整合了立创商城的元器件目录,方便工程师在设计过程中进行元器件的选型和采购。我的启蒙电路设计工具,是Protel 99se,不过已经10年前了,现在基本没人用了,以下几个是目前国内用的比较多的。特点:支持SSH、Telnet和rlogin协议的终端仿真程序,安全性高。

2024-04-24 11:16:26 995

原创 做了几年单片机开发,没有激情了

刚开始,都很新鲜,很有趣,慢慢熟练到一定程度,又会变得枯燥无味,想突破,又觉得遥不可及,慢慢就进入躺平的内耗状态,或者又想转行了。怎么会有这么坑的公司?我能理解他的感受,说直白点,就是当前的付出和回报,不成正比,不想为了这点工资,给吊毛老板卖命。一般都是唯唯诺诺的,领导的话就是圣旨,老板说屁是香的,你觉得是臭的,都会反思是不是自己的问题。在公司做个2年,项目基本都很熟了,做来做去都是用那几款单片机,类似的功能,没什么提升。我就辞职了,踩过坑以后,我觉得,小公司的股份,一文不值,还不如拿个高工资。

2024-04-23 12:20:29 913

原创 找到单片机实习工作,啥也不会,怎么顺利转正?

一般单片机外设,都是他们提供例程,我们直接拿过来用的,除非非常冷门的芯片,要自己看数据手册配置寄存器使用,碰到这种,就认命吧,除了硬着头皮干,没别的办法了。想转正,排第一的,不是当下的能力,而是态度,应届生或刚转行,不能按时完成任务,很正常,领导也会理解的,出多少钱就招什么水平,心里都有逼数。最难忘的一次,我嫌工资低,要辞职,老板娘答应给我涨2-3k,具体多少忘了,不过我还是走了,最后把老板娘都气哭了,撒谎是狗。就是拿到一个新的项目,没用过的单片机,我应该怎么去做,第一步应该做什么,第二步应该做什么。

2024-04-22 12:11:45 972

原创 在单片机开发中,常用算法有哪些?

第二,不管算法多么复杂,最终在程序里面,都是进行加减乘除,左移右移运算,哪怕算法不懂,可以花钱找个数学厉害的人,把需求给他,让他给你个加减乘除的公式,你用代码去实现这个计算就好。如遗传算法、模拟退火算法等,用于寻找问题的最优解或近似最优解,像遗传算法一般用来做机器人的路径规划,以找到最优的移动路径,避开障碍物,做过智障小车的小伙伴,应该比较熟悉了。在需要显示或处理图像的单片机应用中,可能会用到点阵显示、图形变换、颜色处理等算法,在一些点阵屏,TFT屏的应用比较多,这个一般根据实际的图形或者屏尺寸制定算法。

2024-04-19 13:54:18 1637

原创 刚找到工作,碰到新项目,怎么入手?

我也不例外,从改代码维护老产品都费劲,到自己能勉强独立完成简单项目,再到独立完成复杂的项目,最后能设计整体程序架构,保证实现功能为前提,又不失可扩展性和可移植性,这条路,我摸索了快10年。我刚工作时,着急完成任务,一上来就抱着代码啃,通过代码去理解功能是逆向工程,没经验的情况下,比较困难,正确的顺序是,先理解功能,再思考实现思路。还有就是程序版本的管理,可以用Git管理,我一般直接以文件夹的形式,保存在本地,自己电脑存一份,移动硬盘存一份,公司电脑存一份,稳得一批。

2024-04-18 12:12:20 556

原创 嵌入式工程师如何摸鱼?

我刚做开发那会,啥也不懂,每天基本都要加班到晚上7-9点不等,我并不抵触加班,因为早早回家,也没什么事干,多学点东西,工资还能涨得快一点。我觉得这点,是最重要的,毕竟摸鱼的前提,还是要有点实力的,如果你干啥啥不成,天天还在那找借口,哪怕赔上N+1,老板都会把你干掉。1万块干1万块的活,2万块干2万块的活,如果工资不高,就不要出头装逼了,能说难绝不说简单,一天把Bug改完,分1周再提交。我在2019年还录了一套比较系统的教程,本来想拿来卖的,后面工作忙,现在干脆分享给粉丝了,有礼貌的,找我可安排。

2024-04-17 12:11:27 1057

原创 嵌入式工程师如何利用周末提升自己?

我们顺着产业链,找到一个细分的点,看能否喝口汤就行了,哪怕是打工,工资都高点,典型的就是现在做新能源的嵌入式工程师。时代红利则看命了,我觉得普通人想抓住太难了,哪怕能看懂,也不一定有你的事,在资本介入的情况下,所有个体都是蝼蚁。能大器晚成的人,圈子多多少少有点背景资源啥的,浸泡在好的圈子,慢慢自己的思维习惯,性格也会被圈子的人所影响。在30岁之前,是否完成了从0到1的积累,或技术,或能力、或钱,或认知,或人脉,或别的资源...我觉得每代人都是公平的,都有每代人的时代红利,或许他们的时代红利,是AI呢?

2024-04-16 11:22:06 403

原创 为什么学完了c语言觉得自己什么都干不了?

就像如果在学校,老师们事先给同学们说好,学好数学啊,学好物理啊,学好化学啊,这些知识可以造导弹用。不过现在有个尴尬的问题是,入行群体太卷了,你不能突破这个瓶颈,就很难找到工作, 找不到工作, 又突破不了这个瓶颈,进入这个恶性循环了。很多人看了钢铁侠之后,才对技术产生兴趣的,可惜,知道的太晚了,过了做技术沉淀最佳年纪了。学C语言也是如此,虽然语法都会了,让去实现某个功能,就懵逼了,没思路,也不知道代码怎么写。等项目做的多了,你会发现,C语言能做的事情,足以颠覆你的认知,小到家电产品,大到操作系统。

2024-04-15 13:15:29 632

原创 工程师一般怎么记编程笔记?

之前无际单片机项目特训营总是有老铁说,代码容易忘,记不住,怎么办?我说,都不用记的,哪怕让爱因斯坦去记,都摇头喊苦。不知道大家会不会这样,我上个月写得代码,现在都忘得一干二净。那我是怎么"记住"以前写过的代码的?俗话说,好记性不如烂笔头。我一般是有个移动硬盘,资料都放在里面了。然后每个项目都会有清晰度文件夹目录:记录资料,是一个慢工细活,挺费时间的,很多工程师,图省事,目录不清晰,记录的东西一多以后,就像个垃圾堆了。

2024-04-12 15:15:19 743

原创 为什么学生很难真正学好嵌入式?

刚开始那一年,基本就是修修改改别人的屎山代码,给客户定制功能,有时看别人代码,还不如自己写快,先要熟悉功能,再揣摩上一任工程师的实现思路,最后分析代码实现方法,整个过程,跟破案似的。那几个月,我还是学到了不少东西,比如GPS、雷达、菜单.....算是职业生涯第一个比较复杂的产品了,遗憾的是,还是修修改改,没有从0到1完整做一个产品的机会,所以能学到的东西也有限。后面,我才知道,是软件组长,偷偷说了我的好话,说我为完成公司的产品,经常自掏腰包学习。

2024-04-11 12:27:11 705

原创 2024,嵌入式还适合入吗?为什么好多人劝退?

我也是电气工程转行,刚开始想转java,没成功,然后又转单片机开发,做了10年后裸辞,跨行创业半年,没失败,但感觉没什么竞争壁垒,都是同行在卷价格战,做不大,又回到熟悉的单片机行业继续创业,目前是第四个年头。我在刚毕业时,找工作屡次碰壁,后面突然有家公司叫我去面试,我屁颠屁颠跑过去,聊了一会,他说我的基础太差,应付工作的话还不够,需要我再学一下,然后他们有什么什么班,建议我去报。现在想想再正常不过了,就像学单片机开发,哪怕你学了c语言,单片机,硬件电路,做不出项目,太正常了。

2024-04-10 15:22:00 1377

原创 对于嵌入式工程师,需要掌握的知识是广还是精?

我用过STC、NXP、NUC、ST、TI等单片机,其实内部资源,最常用的无非就是GPIO、定时器、串口、ADC、IIC、SPI等等,也不多..做了单片机开发10年,虽然产品类型一直在变,但如果做多了,会发现,很多都是能够改改复用的,很多都是能够举一反三的。就像等你做了开发5年以后,突然有一天,对指针是灵魂的理解,恍然大悟,卧槽,原来c语言也能实现面向对象的代码风格。我程序对短按的定义,就是2秒以下,都是短按,2秒以上是长按,然后2秒以后,每个150ms,代表连续长按。

2024-04-09 11:41:50 696

原创 嵌入式工程师为什么要时刻保持危机感?

前段时间,我追了下<大山大河>这部剧,对于我这个经历的人来说,真的是醍醐灌顶,个个都是从谷底到巅峰,再到谷底,再到巅峰,人的一生不就是这样的吗?我讨厌哲学,我讨厌说教,我讨厌当爹感,但总有一群人能感同身受,说我是对的,说我输出的内容对他们很有帮助,我就是说给这群人听的。跟以前不同的是,现在面对问题的心态,已经相对较好,每次碰到问题,我都会和徐工说,或许碰到这种问题,对我们而言,不是一件坏事。过了试用期,又有新的危机感了,这工资太低了,才1.8k,没法生活啊,赶紧多学点,到时候好提桶跳槽。

2024-04-08 11:38:01 614

原创 撸代码时,有哪些习惯一定要坚持?

不会考虑怎么把代码写得更好,主要是自己当时也没那能力,项目又急,能改出来应付工作就不错了,有时项目急,我逻辑又理不清,甚至用了goto语句走了捷径,可能很多人都没见过。提升这块的能力,主动学习意识和机遇都很重要,有些工程师做了4,5年,如果公司一直做简单的项目,那也是提升不了的,需要自己通过业余的时间,不断看别人代码摸索。因为我是卖课佬,我觉得我们的项目课确实能帮到一些人,成就一些人,万一哪天你需要,我们又正好专业,各取所需共赢,我觉得没毛病。// 如果P1.0被按下,翻转P1口的状态。

2024-04-07 14:04:22 2167 2

原创 学代码是理解就行,还是全部背?

我小学背课本都费劲,背不出来,中午不准回家吃饭,我就是经常吃不上午饭其中一员,所以到现在,都没回去看过老师,给我造成的阴影太大了。即将踏入社会接受毒打时,走投无路,又出于对程序员职业的向往,硬着头皮学了java,学了c语言,学了vb,立志转行做个纯软工程师。前期都是先找参考,先学习别人的思路,先在别人的框架基础上增减自己的功能,最后再尝试自己写,等自己能独立写出来了,就算彻底掌握了。我想说,小老弟,谁能背下来,请奉上你的膝盖,我上周写的代码,现在再看,有些都记不起来了。

2024-04-03 15:01:30 631

原创 怎么评价40岁了还在撸代码?

前几年,有一次我去宝安面试,是个50多岁的老头面我,他把我喊进一个小黑屋,里面放着电烙铁、示波器、万用表、电脑等各种仪器,乱七八糟的,再加上老头那凌乱的白发,瞬间让我想起了电影情节,实验室的科学怪人。我是做单片机方向,代码量相对来说,不多,但别看代码量小,如果想把程序写的更健壮一点,保证功能的同时,要考虑到后续傻杯领导频繁改需求,或者换芯片方案,这种就必须要用模块化的方式去写程序。老板是个光头,看起来挺年轻的,他说刚面我的那个,是研发部的老大,很喜欢钻研技术,所以这么大年纪了还亲自下场。

2024-04-02 13:53:10 1053

原创 嵌入式工程师的悲哀是什么?

以前,我总是沉浸在自己的圈子,认知里闭门造车,爱白嫖资料,爱抱怨,996嫌累不愿干,给我摸鱼又觉得没前途,做个CV调库侠,搜索侠,又觉得没技术含量等等无限内耗中.....起初接触单片机,真的是兴趣,毕竟80后这代人,能走嵌入式方向的,没点兴趣驱动,真的干不动,挣快钱的都跑去干纯软,互联网了。但我又感恩,感恩嵌入式,能给我这个学渣机会,不用进厂打螺丝,坐在办公室,工资也能轻松过万,一个技能养活了我们10几年。碰到牛人,要厚着脸皮抱紧大腿,而不是去敌强仇富,这点,是说给我自己听的,因为以前我就是这样的傻杯。

2024-04-01 14:39:15 653

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除