历史上的今天
返回首页

历史上的今天

今天是:2025年12月16日(星期二)

正在发生

2022年12月16日 | 想从事单片机工作,C语言要达到什么水平?

2022-12-16 来源:zhihu

今天我来聊聊从事单片机开发工作,C语言要达到什么样的水平。

我用自己从入门到找到工作的经历来说或许更贴切点。

我是2011年毕业,非本专业,读的是电气工程,看到师兄那苦逼样决定转行。

实习期比较自由,我就开始自学,从入门到转行成功,前后花了4个月左右。

刚开始,我也很焦虑….

自己能不能学得会?学到什么程度能去找工作?

万一花了几个月时间学习,找不到工作怎么办?

过程虽然很曲折,不过最终还是转行成功了,还记录当时学习的一些笔记。

只要你肯坚持下去,有兵来将挡,水来土掩的魄力,结果都不会太差

最怕就是你碰到问题就退缩,就质疑,这样还不如别开始。

我是从51单片机开始学习的,在某宝上买了一块51单片机开发板。

开发板一般都有配套视频教程,跟着教程一步步走就可以。

我是基础电路、C语言、51单片机一起学得,一边学一边在开发板上看功能效果。

技术学习过程太枯燥了,如果得不到及时的成果反馈,很难坚持下去。

我建议大家也一定要这样去学习。

学完开发板的所有内容,每天坚持学几个小时,大概需要1个多月的时间。

这个时候你会碰到一个瓶颈期,就是单片机每个外设资源都会用了,但是还是无法独立完成一个项目的代码。

这是正常的,因为开发板的定位是让你学习单片机这个工具怎么用而已。

那个时候我只是把开发板都学完了,然后在开发板上做了电子时钟的功能就去找工作了。

前前后后差不多给20家公司拒绝过,那年找工作都是到人才市场,当场面试的。

他们主要拒绝我的还是没有项目经验,其次就是学历、非本专业。

后面,我又在某宝上买了智能小车的套件,自己组装把这个项目重头到位做了一遍。

明显感觉自己的能力提升了,比如说实现功能的思路,和编程水平。

最重要的是多了一个可以吹的项目。

后面再去面试,总共面试了5家公司都不到就成功了。

但是我的经历放在现在,可能比较难。

主要现在优秀的学生太多了,我们无际单片机编程挺多学员都是大学生,最小的大一都有。

大一就有学习的意识,如果你的知识水平还保留10年前的,肯定不行。

单片机开发这个职位,不是说非要你c语言达到一个高级的水平,一般你能修改别人的代码也可以。

刚进去公司也不会让你马上研发新项目,而是维护老项目,改改代码升级功能。

所以,我认为啊,你c语言水平能达到改别人代码水平,暂时也就够了。

主要还是要多做项目,做它3-5个项目,把单片机常用的外设都能应用到实际场景了,一般的产品你也能独立做出来了。

光靠书本和教程的内容,你c语言的水平想提升到高级是很难的。

我是怎么提升的?

从工作中,多看老工程师写的代码,多看一些权威的固件库、协议栈。

前期先模仿他们的写法,比如说他们的按键检测功能怎么写,LCD菜单怎么写。

模仿的时候,思考一下他们这样写有什么优势,有什么不好的地方?

从实际项目中来,到实际项目中去,反复实践。

慢慢地,你对编程的思维和经验都会有一个质的飞越。

我也是这样过来的,自己在19年还录制了一个程序架构的视频,算是对自己的一个总结。

这个架构可以直接移植到产品使用,继承了很多常用的功能,比如说任务管理,队列、LED特效、按键检测。


目前也是开源,找无际单片机编程拿就行,全网同名的。

到某个阶段,你或许就能感悟,任何编程语言都是工具而已。

最核心的还是去实现某种功能的思维是否最优。


推荐阅读

史海拾趣

Bellin Dynamic Systems公司的发展小趣事

随着国内市场的饱和,Bellin Dynamic Systems开始寻求国际化发展的道路。公司首先在欧洲设立了研发中心,以更好地了解当地市场需求和技术趋势。随后,公司又在美国和亚洲等地建立了生产基地和销售网络。通过这一系列的国际化战略举措,Bellin Dynamic Systems成功打开了国际市场,实现了业务的快速增长。

Fillfactory Nv公司的发展小趣事

2015年,FIDELIX迎来了一个重要的转折点。在这一年,东芯半导体有限公司(以下简称“东芯半导体”)正式收购了FIDELIX 25.3%的股权,成为其第一大股东及实际控制人。这一收购标志着FIDELIX开始进入一个新的发展阶段。

通过与东芯半导体的合作,FIDELIX获得了更多的资金支持和市场资源。东芯半导体是一家专注于中小容量存储芯片研发、设计和销售的中国企业,在半导体领域拥有丰富的经验和资源。双方的合作不仅为FIDELIX带来了更多的发展机会,同时也加速了FIDELIX在国际市场上的扩张步伐。

在上述两个故事的基础上,可以根据FIDELIX公司的具体发展历程、重要事件、技术创新、市场策略等方面进行进一步的拓展和补充,以形成完整、详细的故事内容。

Crydom公司的发展小趣事

FIDELIX公司成立于1990年,是一家专注于存储芯片研发与销售的韩国企业。在公司成立初期,FIDELIX凭借对技术的深入研究和对市场的敏锐洞察,成功推出了多款性能优越的NAND FLASH(闪存)和SDR/DDR(单/双数率同步动态存储器)等存储芯片产品。这些产品不仅在韩国市场上获得了良好的口碑,同时也开始逐步进入国际市场。

随着技术的不断进步和市场的不断扩大,FIDELIX逐渐在韩国存储芯片领域崭露头角。公司不断投入研发资金,加强技术创新,努力提升产品的性能和品质。同时,FIDELIX也积极拓展销售渠道,与多家国内外知名厂商建立了合作关系,为公司的持续发展奠定了坚实的基础。

帝特(DTECH)公司的发展小趣事

帝特在国内市场取得一定成绩后,开始积极拓展国际市场。公司在中国区开设了广州、深圳分公司,并在泰国和马来西亚等地设立了分公司和专卖店。通过全球化的战略布局,帝特的产品销售网络遍布东南亚、中东、非洲和美洲等国家和地区,公司的知名度和市场份额均得到了显著提升。

Cyrix Corp公司的发展小趣事

在被VIA收购后的一段时间里,Cyrix继续寻求市场扩张的机会。例如,在1998年,Cyrix与北京大船电子技术公司签订了总代理协议,以扩大其在中国的分销网络。这一策略帮助Cyrix进一步打开了中国市场的大门,为其在全球市场的发展奠定了基础。

以上五个故事描绘了Cyrix Corp公司在电子行业中的发展历程。从初创时期的挑战英特尔到被多次收购后的市场策略调整和市场扩张尝试,Cyrix的发展之路充满了曲折和变革。

EPCOS (TDK)公司的发展小趣事

EPCOS的前身是西门子松下有限公司(Siemens Matsushita Components),于1989年在德国慕尼黑成立。这家合资公司的诞生标志着西门子和松下两大电子巨头在电子元器件领域的强强联合。通过整合双方的技术和市场优势,EPCOS迅速崛起为全球电子元器件市场的重要参与者。

问答坊 | AI 解惑

每次下載附件內容需要多少費用?

請問各位大俠,每次下載附加收費是多少哦? 我下載了一個有10個附件的東東,上面講每次下載收費2新幣, 實際下載時扣除的是6新幣,算下來10個下載后多扣除了40幣。 歡迎大家一起討論。…

查看全部问答>

有gpio的脚都能配置成io脚吗

44b0 有gpio功能的脚都能配置成io脚吗…

查看全部问答>

怎样用好电烙铁

电气工厂的技术人员,家电修理工和电子爱好者,都使用电烙铁作为锡焊工具。正确地选择、操作和维护电烙铁,能有效地防止失误,避免事故,提高工作效率。     电烙铁一般分为内热式、外热式和速热式,功率由20W、25W,大至几百瓦。 ...…

查看全部问答>

【低价转让】UT6410CV01核心板

核心板是在gooolgman处购得,仅上过一次点,读ID,由于导师项目临时有变,所以出掉,回收资金,继续开发!光盘资料齐全,将刻录成DVD随核心板发送。也可以提供其他6410开发板的光盘资料,详请联系。 本人平时较忙,所以若不在线请手机短信联系:13 ...…

查看全部问答>

wince下串口2出错(Data Abort)

请教:板子为ARM2410,在wince下,我的应用程序一打开串口2,串口1上就会有打印信息 Data Abort: Thread=8fadf914 Proc=8e028d08 \'device.exe\' AKY=00001009 PC=024d2a30 RA=03f87e64 BVA=08000000 FSR=00000007 而且串口2不能收发数据,请问 ...…

查看全部问答>

自己写的驱动慢慢会死机

我自己写的驱动 就入口代码 怎么会慢慢死机呢? 还有 有个软件 VStart这个软件会死掉。是不是这个软件和我驱动有冲突啊? 驱动、代码 DispatchCreateClose        proc        pDeviceObject:PDEVICE_O ...…

查看全部问答>

Windows硬件工程大会七折票价倒计时!通过eeworld购票可获赠全年12期程序员杂志,如此优惠,不要错过!

“Windows 硬件工程大会”是微软公司面向个人电脑终端、服务器、硬件设备以及驱动程序的最具前瞻性的全球硬件技术信息盛会,在北美地区已成功举办16届,今年是首次在中国独立举办。因此,此次大会将是一场极具营养的大会。 WinHEC 会上将前瞻性全 ...…

查看全部问答>

LCD 裸奔程序显示不完全,求高手指点

自己仿东山大哥的LCD程序,做了一个LCD显示图片的程序 主要显示程序如下 void Test_Lcd_Tft_16Bit_240320(void) {     printf(\"[TFT 64K COLOR(16bpp) LCD TEST]\\n\");     Paint_Bmp(flower);     getc(); ...…

查看全部问答>

求助!

430可以嵌套中断吗? 比如我在按键P1.0口的中断程序中对A/D采样,且采样值要通过A/D中断读取。(我在书上看到当进入中断后GIE自动清零,那就是说在P1.0口执行中断程序时GIE=0了,即A/D中断也被屏蔽了对吗?但是这时如果我在把GIE=1能执行A/D采样吗 ...…

查看全部问答>

帮忙下啊

低频交流采样及波形显示 一.任务 设计并制作一个可控制的低频交流采样及波形显示装置。系统框图如下图所示。 二.要求 1.输入交流信号频率≤100Hz,峰峰值1~3V; 2.可控制采样的开启及关闭; 3.一个周期必须采样出64个点; 4.具 ...…

查看全部问答>