嵌入式(单片机)实习日记
2022年1.4正式开始我的实习生涯(开始写的日期其实是1.9了,放了2天假),突然就想记录一些自己的一些工作经历,顺便也可以找找相似经历的人。我所入职的是一家做玩具的企业,我的工作就是负责玩具软件的开发。主要玩具是遥控飞机,四轴飞行器还有一些机器人。
2022 年1.4 刚上班,我的直系领导就给了我一块开发板,然后和我说我们现在做的是4位单片机,因为现在芯片太贵了(节约成本),然后呢,4位单片机是用汇编语言编写的。接着就扔给我一个u盘,里面有4位芯片的资料,和一个编译软件的安装教程和安装包。
于是我就开始了懵逼的一个上午,为什么懵逼呢,其实汇编语言我之前也接触过,而且我对于自己的学习能力也比较自信。但是呢,我勒个去,办公室电脑没网,而且我又没带自己电脑(后面问了一些领导,领导说我们这个部门不能带,还指了指摄像头),领导给的资料基本都是英文的,虽然有离线翻译,但是那智能一个单词一个单词翻译。然后我就度过了一天的懵逼生活,你可以想象,你一天坐在那里,基本什么也看不懂,然后还得在那看是一种什么体验。
下班后,我自己一个人走出公司,在外面转了转,我第一次对于手机没有任何想玩的兴趣,感觉十分孤独,无助,有点想回家了。后面我就在我一个熟悉的微信群里发了句“上班原来这么难”。然后我的两个朋友就开始开导我(微信群一共3个人),“坚持住啊”“怎么这么快就放弃了啊,不行啊”巴拉巴拉。说实话,当开始听到他们声音的时候,我居然tm有点想哭了。然后我就边和他们聊边溜达溜达,就感觉没那么压抑了,又充满斗志了。(先写这么点先,PS:跑去看汇编去了)
2022年1.5 第二天我学聪明了,前一天下午下班(也就是第一天)我拿u盘把电脑的一些资料都拷回宿舍(芯片资料啊-英文的,编译器啊,例程)。
然后我先开始翻译那些让我眼花的英文文档,含泪开了个网易有道字典会员,花了我12大洋。然后把两个文档翻译好。接着下好编译器,把里面的帮助文件也翻译了一下。突然我发现这个芯片公司是台湾的,为什么帮助资料和一些芯片资料都只有英文,不懂不懂有了解的可以评论告诉一下。
接着我就上我的B站大学,开始学习汇编,可惜找不到4位的,全是51汇编。然后想了想,应该差不多,就凑合着学着。第二天我还带了个耳机,视频教程和中文资料文档使我信心大增,愉快的去上班了。搞了一天差不多了解其中的语句和一些规则。然后就开始试着编写我最熟悉的点灯(我是点灯大师)。
可惜公司里面都是焊接的元器件,洞洞板什么的。没有我需要的开发套件,面包板,杜邦线,led啥的。所以我建议单片机开发的同学开始上班的时候可以带一些自己开发用的套件。晚上我又去公司门口的大广场散步,不知道为什么就是不想呆在宿舍里面,感觉很冰冷。今天又和之前那两个好朋友聊了会天。
今天又发现了个新大陆,就是散步的时候,我突然发现一个小孩拿着球在路上。我敏锐的观察发现他还穿这一件外套,证明还没出汗,也就是准备去打球。啊啊啊,我是柯南。这里说一下,我最喜欢的运动就是篮球了,然后我就一直尾随那个小孩,终于我发现了一个篮球场,还是一个四周环绕的一个全场,场地也不是水泥地那种。我看到篮球场的时候仿佛找到了失散多年的伙伴一样,hh。
唯一的缺点就是tm8点钟了,居然没开灯,什么鬼。但是我还是在那看那群小孩打球。心想:真好啊,当小孩真好啊。以前怎么老想着长大呢。最后就是回宿舍继续看汇编大法。
2022年1.6 懵懵懂懂居然过了2天了,来到第三天。我好想还没有聊到我部门的人员。我们部门总共有20多个人,因为我还不太熟(不是不太熟,是根本不熟)。3个做软件的,其他好像都是硬件方面的。关键一点他们的平均年龄得40出头了........我的领导看起来40多岁,但是满头白发,我每天看着他仿佛看到未来的自己。啊啊啊,不要啊。
上班我发现一个很搞笑的事情就是每到下班不出30s全部走完。超过一分钟都算我输。尤其是我的领导,每次最早跑路。然后开始上班的时候,我发现他们都好厉害,说的那些专业用语我都听不懂。每天就听着他们讨论,看着他们研究,我呢,每天就***比的坐在那看电脑。有时候我实在不想看了,但是装我也要装作在很认真看的样子,难啊。
今天有两件大事依旧历历在目(我写的时候依旧1月10日了)。首先就是,今天居然有人来问我问题了,我属实有点激动。是这样的,我旁边多出一个工位,开始我也不知道是干什么的,一直没人,后面我知道了,这个位置是专门用来烧录程序用的。我也不知道为什么烧录程序要专门一个工位,知道的可以告诉我一下。然后嘞,每天都有几个人来我旁边烧录程序,其中有一个人大概30多岁吧。他之前每次来烧录,都和我闲聊几句。比如:在干嘛呀,在学校学什么的呀,学过32和51吗,在学校见过这样的烧录吗,等等等等。
然后他今天居然拿了两张附带程序的照片给我看,问我是不是错的。这个程序大概就是数码管显示之类的,具体的也不是错的,即使for循环里面不是可以省略表达式吗,他觉得这可能不对,其实是可以的。接着又问了一个问题,好像是什么定义之类的问题,具体的忘记了,反正我也不会。沟通完之后,我感觉自己知识还是十分不足的,即使在我最熟悉的C语言也是不够的。
第二个好消息就是明天也就是星期五部门聚餐。这可把我紧张的,但是我同时又是很期待的,因为这是和部门其他人熟悉的大好机会,hh。(今天先写到这,休息休息,先写的1.10号的,再开始回忆之前的哟)
2022年1.7 星期五了,工作的具体内容想不太起来了,只记得下午聚餐的内容,那就谢谢聚餐吧。下午我老早就听见领导和部门另外一个人说去买酒,诶,要喝酒,这不是可以更加好的联络感情了。鄙人不才,在大学和那些北方朋友喝了不少此,酒量还是阔以的。
开饭前,几个部门的同事就来和我聊了聊,原来同事之前没有那么生分。饭桌上,我那领导真狠,直接打圈喝酒,原来软件人也这么能喝啊。最后我在快要敬酒到我的时候,识相的敬了一杯领导,hh。接着餐桌氛围挺浓的,大家聊的都很开心,我也参与了一个话题,最后的时候又敬了几个部门的同事,真好。通过这个饭局,我知道了部门里大部分人的名字了,果然还是饭桌上好聊天。那今天就这样吧
2022年1.10 (星期一)周末回家,呆在家里的感觉真好。(PS:找工作前在家呆了一个多月,很想逃离.......)父母一直在和我说一些工作上要虚心请教,好好工作一些巴拉巴拉的。以前他们劝我读书也是这样,但是以前我听到这些贼烦,但是这次回家,不知道为什么有点小感动,然后就和他们分享了工作上的事,说了一大堆。
最后晚上我居然和他们一起出去散步。(我已经好几年没和他们一起出去散步了,因为我觉得这是老年人行为,年轻人不应该浪费时间在这上面)第一次感觉陪伴他们的时间真的越来越少了。
说到工作,诶发生了一件大大的事。我终于向我领导问问题了。主要就是我在网上自学的51汇编语言(网上大部分都是51的,基本找不到4位的学习,),汇编其实都差不多,但是就是这差不多的一点东西,搞得我头晕眼花。
首先就是51汇编里的例子完全对不上领导给我的4位单片机的例子。因为4位单片机里面封装的指令很少,像一些乘法除法的都没有。(ps:我现在的水平是流水灯水平了。)还有其他的一些什么东西,比如居然还可以定义寄存器我是没想到的,等等一些问题。我今天终于下定决心问他。不问不知道,一问他和我说,这个芯片和51芯片很多不一样,有些东西很讨厌的。(大致意思就是这玩意编程和51编程很多不一样)诶,你知道不一样还不早告诉我,我........,不怪领导,都是我的错,我不该这么晚问的。
然后他就把他给我的例程大致从上到下给我讲解了一遍,豁然开朗,真应该早点问啊,早点问就节约很多时间了。具体的一些问题还有包括按键的初始化,还有定时器初始化。这些说实话以前在32上面做感觉简单的一批,但是在这个4位单片机上用汇编写就有点难搞了,其实也不是难搞,就是要了解一些规则。就像做数学题给公式和不给公式一样。今天学会了按键还有对定时器的初始化也深入了解了一下。我感觉我的进度好慢啊,你们觉得呢,但是我真的已经很努力了哎呀
1.10日 开始慢慢适应了工作的习惯。有时候看的累了,喝口水,去个厕所,稍微眯一下眼睛。没有来的时候那么大的压力,一直死死的盯着电脑,即使根本看不进去也在盯着。
今天主要研究了汇编的定时器用法,搞的差不多了,明天再问一下领导问题,应该就差不多了。还是那样,问领导问题依旧慢慢吞吞的不好意思问,哎。下午工作的时候,由于中午没怎么睡,好困啊,差点就睡着了,赶紧跑去厕所洗个脸。每天长时间的看电脑,下班之后是真的不想再接受辐射的摧残了。可是又没什么好玩放松一下。今天好冷啊,连大广场都没去散步了。感觉自己写文章好烂啊,一段一段的,哎算了,记录一下。什么时候才能自己做出个遥控器出来啊,继续加油继续加油。
PS:哎呀怎么突然就到了1.12了,昨天忘记更了哎呀。
1.11日 忘记有啥大事了.......想到在写吧。
(10点钟的时候突然想起来,我昨天没更的理由是和同学玩了会游戏,玩着玩着时间就过去了。玩游戏的时间过得是真快啊。)PS:以下的1.12的内容是先写的
1.12日 诶,今天有意思了,领了两个大件装备,示波器和稳压直流电源。这在学院可是可是稀有装备,经常参加电赛的当我没说。其实早在上班前几天也领了一个装备-万用表。这可不是我在某宝买的20多的万用表,一看就是那种高大上的。前两天不是在搞定时器嘛,今天经过领导的知道后,终于可以发射一段方波了。怪我土,没用过示波器,搞示波器搞了半天,最后还是领导过来教我的才会的。最后在领导的指导下成功的发射出来。
接着就是开始制作红外遥控器了,准备了一个红外接收头和一个现成的遥控器,由于红外接收头需要3-4v的电压,就搞了个稳压电源。顿时我的桌面有了一种大工程师的高级感,我看着这些装备,想着不搞点东西对不起这些装备啊。结果我就开始搞这个红外接收器。今天不知道为什么领导经常走过来问指导我,可惜,红外遥控这个我在大学没接触过过。得先了解一下原理,结果领导过来给我讲了一堆编码的东西,我是一脸懵逼,还得嗯嗯嗯。
今天在领导那边发现原来有一种简单的类似示波器一样的东西,也是可以检测波形,但是在电脑的一个软件上显示的。以后回家自己搞一个(示波器太贵了,买不起......)。接着就是自己研究,红外好像是很简单,但是我今天晚上21:30才搞懂了,然后高兴的过来更文。搞懂的感觉真好。
今天还有就是居然有零食可以吃,还有烧猪,真不错,前面还不好意思去拿,后面不是领导一直在教我那个红外遥控器的编码嘛,然后领导就喊我去,我就去拿了一个试了一下,诶真不错。对了,晚上***逼走了2公里去附近的健身房看了看,走到一半才发现我们公司旁边的公交车和我擦肩而过,血亏。结果到了不知道为什么又没上去(神经病),在附近吃了碗面就回公司看视频继续学些了。明天继续加油,早日做出那个傻鸟遥控器。(对了我的汇编大法书到了)
1.13日,好快啊,明天又到了星期五。今天感觉工作正式步入正轨了,怎么说呢。基本的语法和要做的项目原理大概都了解的很全面了(红外遥控)。今天一天都是在写代码和调试,话说这汇编是真滴麻烦,一条在c语言简单的赋值,就要整好几个语句,又要压栈保存,过一会又要出栈调用,麻烦的很。
不过有一点好处是,代码语言都很直观,就像你写代码的时候思考的习惯要和机器一样,你可以领悟这一条条语句的原理作用。可能我表达不是很清楚,就举个例子吧,举得不好大家别怪。像stm32的按键为例子,你要先初始化按键io口为输入,然后设置上升沿或者下降沿触发,又是什么端口配置啊,最后在初始化一下gpio啥的。然后后面还有个按键检测函数来调用。
我现在做的这个汇编,就很单纯,设置io口为输入,其实就是设置一个寄存器的一个位为0,然后直接把数据寄存器的值读取出来,如果读到的是0,那就是按下,没读到就循环检测,就几行代码。我不知道我表达的大家能不能理解,毕竟我也刚接触汇编没多久,见谅。但是呢简单有简单的,麻烦的还是多的,就像上面的赋值一样。不止这个还有延迟函数也是,在32里面直接调用一个延迟函数,往里面赋值就好,结果虽然不是很精确,但是也差不了多少,想要什么就赋值什么就好。
在我这个4位机里面,延迟要算的,按照机器周期一个一个算,我滴妈啊。而且你比如说要10us的延迟,你写好后,你又想用15us的延迟,你就得重新再写一个。可能有什么简单方法,但是我现在用的就是这个,有大佬教教有其他简便方法吗。(PS:我这个4位机是没有乘除的,领导说好像是可以自己编写一个,但是我不会)。我看了我领导的代码,他的延迟函数就是直接top,比如要个50us,他直接就写了25行的top.........按他说,这样多简单,也对,不用自己算。
今晚不知道为什么没有啥学习动力。看了会B站,刷到一个小朋友背古诗的一个视频,撒贝林主持的。看的我是激动不已,感觉自己是个fw,不行,然后感觉跑去学习了,顺便写了下文章。现在是1.13日晚上9.30,洗完澡再看一会吧,然后睡大觉。晚安,各位,明天又是美好的一天(秃头的一天)
1.14日,今天问了领导一个问题,但是领导好像比较忙,然后就忘记了,感觉怪尴尬的。后面慢慢没啥大事就简单写几句哈。晚上为了庆祝周末准备和朋友出去玩,去公司附近的沙县小吃点了份鸭腿饭,又买了一些面包。结果第二天,也就是星期六上吐下泻,我滴妈啊,难受死了,玩也没玩好,吃也没吃好。奉劝以后即将步入职场的同学们在外面吃东西真的要小心再小心,因为不像学校,你生病了就可以随意的请假。像我如果是工作日突然这样,我一个刚来半个月的实习生该咋办啊。所以啊,我觉得宁愿吃美宜佳的包装食品也不想再去外面吃了,除非是自己考察过确实干净一点的地方,不然还是注意一下吧。
1.16周日晚上,和朋友聊了一会工作上面的事情,我有了一些领悟。就比如我现在在开发的红外遥控器,其实难的不是红外遥控器这个项目,难的是用汇编来开发和项目的原理的熟悉。其实我想了一下如果给我用我最熟悉的32来开发我可能只需要几天时间,即便是很久没用的51估计也就多个2-3天。
上班做项目的时候我很多时候其实是项目原理都不太清楚,然后在编程里面边敲代码边熟悉,本来编程方面就不太熟悉,还要去用来熟悉项目原理。我这说的熟悉项目原理,怎么说呢,类似调试一下吧。而且我带的32开发板一直没有用到,之前看视频就只是看而已,没有加以实践。并且我认为在学习汇编的时候不能忘记以前的老本行(C语言,毕竟不可能以后都用汇编来开发,效率太低了)。
所以我决定了以后下班的时候用32开发板来学习工作上的项目,然后上班的时候研发的逻辑思路清晰了,就可以慢慢的码代码了,而不至于坐在那不知道干什么(因为你不知道原理的话根本无从下手)。md,沙县小吃不共戴天,肚子还是难受啊
各位我回来了,大家新年好。
今天初七,收拾了一下出发回公司。公司放假是在2.21日,和上次更新的1.16日差了差不多一个星期没更。那段时间其实也没什么特别的大事,就是一直在进行红外遥控解码。代码整体思路,写法已经很清晰了。但是架不住代码量多,老是测试失败,失败了又调试查找。一直重复的修修改改,到放假的最后还是没有调试成功。
在最后一天,我领导和我聊了一下,我发现我有一个比较严重的错误,就是一直在写代码,代码写的老长老长,但是却没有检查单一的算法是否正确。前面和大家说过,我这个单片机是4位的,而且没有乘除和一些高级的算术。这些都是要靠自己。比如你要自加一个数,你只能加到16位,再往上你就要再创建一个变量,就是一种循环嵌套。还有自加,加到一定的数进行判定等等一些简单算法。这些用c语言来做可以说十分简单,但是用汇编的话却有点复杂。又长又复杂导致我花了好几天调试无果。
最后领导和我说,我们做项目代码很长很大,不好修改,如果一个地方错了,我们往往要花费许多时间。但是如果我们把整段代码的一些重要的函数或者算法给我保证写正确了,不会出错。那是不是我们再检查的时候就会简单很多,而且编写代码的时候也不会那么容易出错,而且查找半天也查找不到。那天我就开始一个一个的测试我代码段里的一血小算法,唉,发现好多算法都是错误的。不过那天是最后一天,最后还是没有完成。
今天回来的有点晚先写到这,好困,明天打起精神加油干
#嵌入式工程师#