无际单片机编程

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

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

原创 学技术需要当学徒?醒醒吧!

我不敢自称“大神”,但至少可以骄傲地说,我靠着自己的一步一个脚印,从一个连IO口都不会配置的菜鸟,成长为一个能独立完成复杂项目的老鸟,大大小小做过几十个项目,烂尾的,上市的都有。别再被“学技术需要当学徒”这种陈旧观念所束缚,技术这条路,没有捷径可走,唯有脚踏实地,相信我,只要你坚持下去,终有一天,你也能成为一名优秀的单片机工程师!站在对方的角度想想,别人为什么要把时间浪费在你身上,要么你提供实实在在的利益,要么他在你身上看到了潜力,又有感恩之心,把你培养起来了以后对他有帮助。更何况,别人凭什么手把手教你?

2025-04-23 09:51:19 1052

原创 RTOS实时性不稳定?这些措施帮你稳如老狗!

雷猴啊,我是无际。作为一名单片机软件工程师,我对实时操作系统(RTOS)简直可以用“又爱又怕”来形容。爱的是它那精准的实时性,能让项目功能的响应速度达到极致。怕的是,如果没用好也会偶尔抽风,有时出现问题,不好定位,实时性也会受程序所影响。所以,一般我做产品很少用RTOS,都是用自己写的架构比较多,缺点是项目大了,实时性不好把控。想知道RTOS实时性是怎么实现的?遇到不稳定怎么办?别慌,这篇文章就是你的“技术锦囊”。

2025-04-22 13:07:45 664

原创 这几个常见的嵌入式软件架构,能胜任90%的项目了

嵌入式软件架构是单片机开发的“灵魂”,它决定了你的代码是“豆腐渣工程”还是“艺术品”。掌握这些常见的架构模式,你就能更好地组织你的代码,构建更清晰、更稳定、更易维护的嵌入式系统。希望这篇文章能帮助你摆脱“代码搬运工”的身份,起到抛砖引玉的作用,助你成为一名真正的嵌入式软件架构师!好的架构不仅能提高开发效率,还能让你在开发复杂项目时游刃有余。最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单片机最佳学习路径+单片机入门到高级教程+工具包」全部无偿分享给铁粉!!!

2025-04-21 15:01:16 1152 1

原创 嵌入式C语言位操作的几种常见用法

通过巧妙地运用位操作,我成功盘下了这个项目,节省了硬件成本,还赢得了老板欢心,后面我离职了几年,又以技术入股的方式把我请回去,从此踏入更大的坑,算了,血泪史,不说也罢。举个例子,我们常说的“8位单片机”,指的是它的数据总线宽度是8位,也就是一次可以处理8个二进制位的数据。当时,我想尽各种办法优化代码,最后发现,使用位操作可以极大地压缩数据存储空间,提高程序的运行效率。作为一名老单片机工程师,我承认,当年刚入行的时候,最怕的就是看那些密密麻麻的寄存器定义,以及那些让人眼花缭乱的位操作。

2025-04-18 11:37:52 855

原创 怎么用面向对象和状态机架构,设计一个通用的按键检测功能?

别小看按键检测功能,看似简单,其实是个磨炼设计能力的好机会,对编程思维和代码水平是一个考验。用面向对象和状态机,能让你的代码从“能跑”变成“跑得好”。当然,实际项目里,你可能还得考虑功耗、中断、定时器精度之类的问题,但核心思路不变:把复杂问题拆成小块儿,交给对象和状态机去管。所以,下次写代码时,别再一股脑儿堆if-else了,试试这套“组合拳”,保证你会爱上这种清晰又灵活的感觉。毕竟,好的设计不仅能解决问题,还能让你少掉点头发,对吧?

2025-04-17 16:01:47 1230 1

原创 怎么从技术转管理?

不过,2011年-2020年的职业生涯,我没做过管理,一直是做研发,但我去过很多不同的公司工作过,各种各样的管理层都见过,有放养式的,有军事化管理的等等,不难从他们身上分析出管理需要具备的能力,另外自己也创过业,操盘过百万级以上的项目。其实能做管理,我觉得还是有一定基因论的,不是每个人都适合,但不同量级的公司,要求的能力维度不一样,拿小公司来说,只要技术牛逼,加上三观正常,沟通无障碍,基本就可以了,而大公司对管理层的要求则高很多。保持对新技术的好奇心,了解行业动态,避免成为“技术盲”的管理者。

2025-04-16 09:43:05 1086

原创 嵌入式软件OTA升级,有哪几种Flash划分方式?

要是失败,标志位不变,依然跑老程序。结果一上手才发现,这玩意没那么简单,尤其是Flash怎么分,如果Flash划分没弄好,升级失败,设备直接变砖,可能会被老板拎出去“祭天”。怎么搞: 拿STM32举例,假设Flash有512KB,可以分成两个256KB的区,一个存当前程序,一个存新程序。我做过2,3款从产品,都有OTA功能,包括我们无际单片机特训营的项目6,也带OTA功能,用的是我们自研的云平台。Bootloader别动:它是升级应用程序的程序,得保护好,别被覆盖,这个一被覆盖,彻底无法OTA了。

2025-04-15 15:38:33 761

原创 开发板学不到的7大核心技能

代码写完,烧录,测试,OK,完事。如果没有版本控制,你会发现,你的代码会逐渐失控,变成一团乱麻。这就像给你的代码买了“后悔药”,万一改出bug,可以随时回滚到之前的版本。但我要告诉你,数据手册才是“正宫娘娘”,那些博客、论坛上的二手资料,顶多算“野花”。要想成为一名优秀的单片机工程师,你需要不断学习,不断实践,不断提升自己的“软实力”。想象一下,你接手一个项目,打开代码,发现里面全是“魔法数字”、无意义的变量名、以及成百上千行的“超级函数”。好的代码,应该像一篇优美的散文,结构清晰,逻辑严谨,注释到位。

2025-04-14 09:44:29 831

原创 2025年嵌入式行业中,哪款RTOS在商业应用最广泛?

开源的RTOS可以免费使用,而且社区支持强大,开发者可以根据自己的需求进行定制,这大大降低了开发成本和门槛。我自己最近在研究一个新的双核MCU,里面就用了FreeRTOS,但是我并没有针对性去学过,看到一些API和功能组件,基本都能理解,因为和自己以前写过的架构,思维很相似。Zephyr: 这位是“新贵”,由Linux基金会牵头,也是开源的,而且非常注重安全性。这个架构,我在2018年还录过一套教程,录着玩的,如果最近在学RTOS,可以先把我这个教程过一遍,打好功底,再进阶到RTOS,非常丝滑。

2025-04-10 11:18:00 809

原创 放弃STM32吧!RISC-V+开源IDE会不会是下一个十年风口?

确实,STM32用的是ARM Cortex-M内核,性能稳定,周边资源丰富,不管你是做个小玩意,还是搞个复杂的嵌入式系统,几乎统治了过去十年的嵌入式市场。RISC-V,这个开源指令集架构,以其灵活性和零授权费用的优势,正在席卷全球,而像PlatformIO、VS Code这样的开源IDE,则凭借社区驱动的创新和高度自定义的能力,迅速俘获开发者的心。这些年,ARM的进步更多是修修补补,面对新兴应用场景,扩展性受限,而另一边,新选手RISC-V已经开始崭露头角,带着一股“开源自由”的风头杀了进来。

2025-04-09 21:08:19 978

原创 专科生做嵌入式还有出路吗?

我们这代80后,从事嵌入式开发的,大多数学历非常普通,但是代码风格清晰优雅,调试能力一流的工程师很多,也见过某大厂高学历写出来的代码,不知道怎么形容,有个词叫"屎上雕花"。先说学历这道坎,嵌入式这行,确实有点“学历门槛”,大厂招聘JD(职位描述)里动不动就写“本科及以上”,硕士博士优先。我认识的几位专科出身的技术大牛,都是从中小企业起步,积累了几年经验和作品后,再跳槽到更好的平台。到那时,学历已经不再是最关键的敲门砖。我从业十年,见过的牛人里,不少是专科出身,甚至还有很多像我这样,自学成才的“野路子”。

2025-04-09 12:31:10 766

原创 只会调库的嵌入式工程师,迟早被淘汰?软硬兼修的三大底层思维

另一个系统思维的体现是架构设计,在我2012年做过的一个太阳能控制器项目中,采用了单体架构,所有功能都集中在一个while(1)中,都是if-else嵌套的逻辑判断。比如有个项目要做数据采集,CPU才48MHz,新手非要上RTOS,结果调度开销太大,数据都来不及处理,改成裸机+中断,立马流畅了。作为一名在嵌入式领域摸爬滚打十余年的工程师,我深知一个残酷的现实:会用库和框架的工程师很多,但真正理解系统底层的人才却很稀缺。这个简单的问题,揭示了一个严重的设计缺陷:系统没有定义传感器完全失效时的行为模式。

2025-04-08 12:06:47 864

原创 只会调库的嵌入式工程师,迟早被淘汰?软硬兼修的三大底层思维

我从箱底翻出一块十多年前用过的51单片机开发板,吹掉灰尘,插上电源——令人惊讶的是,它竟然还能正常工作!那个年代写的代码,没有HAL库,没有Arduino框架,全是寄存器操作和底层逻辑,却有着惊人的稳定性。这让我不禁思考:在这个框架、库和生成式AI盛行的时代,我们是否正在逐渐失去某种宝贵的能力?那种能让代码运行十年不出问题的底层思维是什么?作为一名在嵌入式领域摸爬滚打十余年的工程师,我深知一个残酷的现实:会用库和框架的工程师很多,但真正理解系统底层的人才却很稀缺。

2025-04-03 11:53:29 1036

原创 车企嵌入式工程师薪资为何直逼程序员?

六、嵌入式与互联网:殊途同归的技术革命 有趣的是,虽然嵌入式和互联网看起来是两个完全不同的技术方向,但随着物联网、边缘计算的发展,两者正在逐渐融合。无论你是嵌入式老手,还是刚入门的新人,记住一点:在这个领域,真正的核心竞争力不是你今天会什么,而是你能以多快的速度学会新东西。那时的嵌入式开发,给人的印象往往是:埋头苦干、与电烙铁、示波器、脏不拉几的电路板为伍、和寄存器打交道,薪资水平与耀眼的互联网大厂程序员相比,差距不是一星半点,导致很多人都觉得嵌入式是个坑,早跳早解脱。这些技术栈,比起十年前至少翻了三倍。

2025-04-01 20:36:11 876 1

原创 嵌入式工程师劝退指南:这四类人千万别入行!

嵌入式开发,听起来高大上,其实就是给硬件装个“大脑”。小到家里电器,大到扫地机器人、自动驾驶系统,再到工厂里的工业控制器,背后都得有个嵌入式工程师写代码、调参数。别看它无处不在,这行可不是人人都能干的那种活儿。门槛高、活儿杂、加班多,年薪高是真,但坑也多。我刚入行那会儿,天天抱着51单片机啃 datasheet,熬夜调bug到凌晨,觉得自己对比身边的躺平同学,还是有点上进心的,能搞定硬件还能写代码。后来才发现,连门都还没摸到。十几年下来,我见过太多人信心满满跳进来,结果半年不到就提桶跑路了。

2025-03-27 12:16:20 2600 1

原创 嵌入式+AI+物联网=王炸?普通工程师如何抓住这三大风口?

嵌入式+AI+物联网确实是“王炸”,但风口不是人人都能飞起来的猪。技术更新快,学起来也累,普通工程师想吃这块蛋糕,得有点耐心和韧性。别看着别人年薪百万就眼红,也别被培训班忽悠得晕头转向,踏踏实实学点真本事,比啥都强。这三大风口,说白了就是硬件、算法和通信的组合拳。它们不只是技术,更是改变生活的工具。你今天写的一行代码,可能明天就跑在某个智能设备里,帮人解决问题,甚至救人一命。想到这儿,是不是觉得意义更多了一点?最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单。

2025-03-26 20:37:48 1207

原创 嵌入式开发者的技术寿命:为什么35岁做偏底层开发更安全?

雷猴啊~最近总有人来问我嵌入式年龄危机的事,今天来聊聊。相信你都听过这么一句话:程序员35岁是个坎儿,这说法在互联网圈子里传得跟鬼故事似的,尤其是那些搞前端、后端或者移动开发的兄弟姐妹,到了35岁就感觉自己像被时代淘汰的老古董。满屏的框架更新、996加班单,再加上AI横空出世,写代码、调模型都不用人了,搞得人心惶惶。但你再看看嵌入式开发领域,尤其是那些扎根底层的资深工程师,35岁不仅没啥危机感,反而越干越滋润。这到底是为啥?

2025-03-26 12:25:19 898

原创 揭秘智能汽车、机器人背后的隐形刚需:嵌入式工程师薪资暴涨50%的真相

嵌入式工程师薪资暴涨50%,不是运气,是智能时代硬需求。他们是智能汽车、机器人背后的“造梦者”,用技术让科幻变现实。最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单片机最佳学习路径+单片机入门到高级教程+工具包」全部无偿分享给铁粉!!!除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!教程资料包和详细的学习路径可以看我下面这篇文章的开头。单片机入门到高级开挂学习路径(附教程+工具)

2025-03-25 13:43:21 1111

原创 嵌入式入行成功率排行榜:自学、px班、科班出身哪条路最靠谱?

雷猴啊~转行嵌入式,我太有感觉了,14年前从电气专业转行那段酸爽经历,还记得。像在黑夜里摸索,时而看到光亮,时而一片黑暗。心情起起伏伏像玩过山车,有时觉得自己离成功就差一步,有时又想放弃,太煎熬了。有些人靠自学找到工作,有些人靠培训,有些则是科班出身。我是自学的,那会穷学生,根本报不起,那个什么北什么鸟让我贷款,我没敢。有些同学可能在纠结,到底自学,还是报班?科班好不好找之类的。。下面通过我的经历,告诉你每条路的优缺点。

2025-03-24 20:15:48 1290

原创 烂大街的智能小车项目为什么很难通过简历筛选?

雷猴啊~今天咱们聊聊智能小车项目,这个在嵌入式领域里堪称“国民项目”的存在。但现实往往很骨感,这个项目虽然烂大街,却很难在简历筛选时脱颖而出。为什么会这样?下面给你慢慢剖析下,顺便支几招,让你在求职路上少走点弯路。

2025-03-24 15:10:06 870

原创 只会STM32和精通RTOS的薪资差距究竟多大

归根结底,STM32和RTOS都是工具,关键看你用得怎么样。只会STM32的,是工具使用者,能干活,但上限有限。精通RTOS的,是工具掌控者,能游刃有余地开发复杂项目,技术壁垒高,薪资自然水涨船高。嵌入式这行,逆水行舟,不进则退。最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单片机最佳学习路径+单片机入门到高级教程+工具包」全部无偿分享给铁粉!!!除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!

2025-03-20 20:56:12 791

原创 是单片机高手还是菜鸟?程序架构说了算

在单片机开发中,写出能跑的代码只是起点,而程序架构的好坏才是区分菜鸟和高手的真正标尺。程序架构是代码的“骨架”,它决定了代码的组织方式、运行效率和维护难度。菜鸟往往只求功能实现,代码杂乱无章;而高手则注重架构设计,追求清晰、高效、可扩展的代码结构。今天,我们就通过一个简单的代码模型,来看看菜鸟和高手的程序架构有何不同。:通过PWM调节LED亮度,支持开关。:每秒读取一次温度值并通过串口输出。:短按切换LED开关,长按调节亮度。:每5秒自动根据温度调整LED亮度。

2025-03-20 14:43:22 841 1

原创 嵌入式简历自杀行为:你写的“精通C语言“可能正在被HR嘲笑

提交前检查拼写、语法、格式,确保没有低级错误,这是态度问题。

2025-03-19 18:43:05 932

原创 单片机软件开发的三层天梯:登顶大师,你还差几步?(5000字深度文)

单片机软件开发,说简单也简单,说难也真挺难。它考验的不光是你的编程功底,还有你对硬件的理解、对工程的把控。代码写得好,不仅能解决问题,还能大大提高开发效率,这种成就感是别的行业给不了的。技术是门手艺活,熟能生巧。别怕出错,错了就改,改了再错,错着错着你就对了,有点啰嗦,但绝对真理。最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单片机最佳学习路径+单片机入门到高级教程+工具包」全部无偿分享给铁粉!!!除此以外,再含泪分享我压箱底的22个热门开源项目,包含。

2025-03-18 19:03:24 934

原创 单片机学完开发板,如何继续提升自己的技能?

没得奖也没关系,作品往简历上一放,面试官问起来,你能头头是道地讲“当时怎么调的代码,怎么焊的板子”,这就是硬核实力。会点C语言,能烧录程序,能点亮LED,玩转按键,搞定串口等等,能用开发板做点小玩意儿,但面对实际项目时,发现自己啥也不会,脑子一片空白。主要还是C语言,刚开始,你不一定得要写出高效、稳定的代码,但最起码给你一个项目,你能去维护里面的代码,改改需求啥的,我第一份工作就是干这种事。I2C、SPI、UART这3个是刚需中的刚需,必须熟练掌握,不夸张的说,几乎90%的项目都会用到这些协议。

2025-03-18 14:12:42 1935

原创 学习单片机需要多长时间才能进行简单的项目开发?

所以,学单片机多久能做简单项目?没个固定答案,但给你个大概:每天2-3小时,认真学加多练,51单片机1-2个月,STM32得3-6个月都有,看复杂度。所以,如果你每天能挤出2-3小时,认真学C语言、看点基础教程,差不多2-3个星期,就能从“啥也不会”到“有点感觉”。再看STM32,ARM Cortex-M内核,功能多,时钟树、中断向量、DMA一堆概念砸过来,学起来像开坦克,没点耐心真不行。我第一个STM32项目是做太阳能控制器,外设卡了3,4周,功能也挺多,一个月才能摸到门道,整个项目做了3,4个月。

2025-03-17 12:58:10 3087

原创 从零基础到能独立设计单片机产品,一般需要经历哪些学习阶段?

初级:能看懂电路图,知道元器件的基本功能。中级:能分析简单电路,理解硬件对软件的影响。高级:能设计简单接口电路并调试。对于单片机软件开发,建议至少达到中级水平。这意味着你能理解硬件行为,并在软件设计中加以考虑。例如,配置ADC时知道如何选择采样率;在通信时考虑硬件的传输速率和错误率。

2025-03-14 19:25:52 1367

原创 嵌入式开发必备技能:掌握表驱动法,轻松应对复杂逻辑

说到底,程序架构这东西,它不仅是一种编程技术,更是一种设计思维,同一个项目,不同段位的人去做,稳定性各方面都不同,就取决于这种思维和技术的经验积累。而表驱动法只是其中之一,在单片机开发中,无论是命令解析、状态机设计,还是配置管理,表驱动法都能帮你写出更优雅的代码接下来,我强烈建议你亲自下场,感受“改表不改码”的快感。下次领导再改需求,你先苦巴巴说,这个功能不好做呀,可能要2周。然后暗地里笑笑眯眯地改张表,几分钟搞定,其它时间,当然是用来摸鱼啦,以前我就经常干这种事。

2025-03-14 13:04:30 984 1

原创 嵌入式软件架构:从需求到状态机设计全流程

Idle(撤防):系统不检测任何入侵,用户可以随意活动,家里有人时常用这个模式。Armed_Home(在家布防):只检测外部区域(比如门窗)的入侵,忽略内部活动,适合晚上睡觉时使用。Armed_Away(离家布防):检测所有区域的入侵,家里没人时用这个模式。Alarm(报警中):检测到入侵后进入这个状态,触发蜂鸣器并发送警报通知。IdleArmed_HomeArmed_Away和Alarm。这四个状态覆盖了所有核心功能。// 定义状态STATE_IDLE, // 撤防。

2025-03-13 09:51:02 903 1

原创 Modbus通讯协议:从零开始,新手也能看懂

我第一次接触Modbus时,是做一个电梯的配件,还有后面做PDU也做过。网上资料一大堆,但零零散散,我一开始也完全不知道从哪下手,我翻开官方文档,满眼的专业术语和表格,头都大了。帧结构是什么?CRC校验怎么算?完全摸不着头脑。其实找个简单的代码示例,把基础概念弄明白,再去看理论的东西,贼简单。后来我找到突破口:从Modbus RTU入手,先搞懂帧结构和功能码,其他的慢慢补。这篇文章带你从零开始,拆解Modbus的核心概念。

2025-03-12 12:33:18 1618

原创 十天内学完STM32,想想都刺激!(4600字喂饭式教程)

今天的标题,有点刺激,但我学STM32,到项目上能把资源跑起来,差不多就是花了这么多时间。不过,对于完全没学过编程和单片机,劝你踏踏实实先学51,放弃幻想,十天估计连STM32是咋回事,都搞不明白。如果已经玩过51开发板,那么开启疯狗模式,十天学完STM32,完全能做到。我特别能理解学习STM32时的那种抓狂感。刚开始接触时,感觉完全无从下手,面对厚得像砖头一样的芯片手册,还有那些让人头晕的寄存器配置,感觉根本学不完。

2025-03-11 19:37:25 872

原创 单片机OTA升级中Bootloader怎么判断APP有没有问题?

Bootloader要判断APP靠不靠谱,常用的招数有校验和/CRC、数字签名、版本检查、位置检查和标记验证。这些方法各有各的强项,搭配起来用,能确保APP没毛病,既安全又好用。希望这些例子和解释能让你明白咋回事儿。最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单片机最佳学习路径+单片机入门到高级教程+工具包」全部无偿分享给铁粉!!!除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!

2025-03-11 12:41:49 1012 1

原创 学好单片机的捷径:掌握这些片上资源!

我深刻体会过学习过程中的迷茫和焦虑。记得刚开始接触单片机时,面对复杂的片上资源:定时器、中断、GPIO这些名词,还有那厚厚的技术文档,我完全不知道从何下手,心里充满了无力感,甚至一度怀疑自己能不能学好。情绪低落的时候,我就特别希望有个“技术朋友”能拉我一把,告诉我哪些是重点,怎么一步步上手。这种经历让我发现,初学者最大的痛点就是缺少一个清晰、系统又好懂的学习路径。我们需要的,不只是冷冰冰的资料,而是一份能解答疑惑、指引方向的指导,让学习不再那么痛苦,而是变得有趣又有成就感。

2025-03-10 16:50:49 698

原创 如何消灭if/else屎山代码?

消灭if-else屎山不是一天两天的事,但只要你把这些招数用熟了,再复杂的逻辑也能理得清清楚楚。从现在开始,让你的代码变得优雅又专业,像艺术品一样,既好看又有用。记住,代码是写给人看的,顺便让机器跑。别让if-else拖了后腿。最近很多粉丝问我单片机怎么学,我根据自己从业十年经验,累积耗时一个月,精心整理一份「单片机最佳学习路径+单片机入门到高级教程+工具包」全部无偿分享给铁粉!!!除此以外,再含泪分享我压箱底的22个热门开源项目,包含源码+原理图+PCB+说明文档,让你迅速进阶成高手!

2025-03-10 14:18:58 1183 1

原创 嵌入式软件工程师如何在新产品立项后快速上手?

所以,我写这篇文章的目的,就是想跟你分享一套实用的方法,让你在面对新项目时心里有数、手里有招,都是从实战里摸出来的干货,简单实用,拿走就能用。我是懒,经验也比较丰富了,也有成熟稳定的架构可以用,就没有去画流程图啥的,直接就开干了,架构搭建好了,再一个个完善细节,就不会出现大问题。一般客户要求没那么刁钻的情况下,比如成本,尺寸,功耗啥的没太高要求,我会使用自己熟悉的方案,这样开发起来快几倍。客户给的需求往往是站在他的角度的,有时候他们自己都说不清楚想要啥,站在写程序的角度,可能又是另一种需求。

2025-03-07 11:12:52 699

原创 嵌入式开发用这3种软件架构,直接无敌。

做开发1-3年的时候,一些简单的项目,功能基本都能实现,项目复杂度一上来,我的代码就变得乱七八糟了,改一行就崩一片,修个小bug像是拆弹,剪错一根线,整个程序原地爆炸。后来接触了不少项目,我发现一个规律:那些代码写得牛的人,都有个共同点,很多功能明明很简单,代码却写得弯弯绕绕的,这不是一个全局变量就能搞定吗?为啥搞这么麻烦?后面独立开发比较复杂项目时,才搞懂他们的精髓所在,像搭积木一样,整齐有序,扩展性和移植性又好,这背后靠的是软件架构。我开始钻研这个东西,慢慢从"救命,代码炸了"的小白,变成了能淡定应对复

2025-03-06 10:31:54 958 3

原创 最通俗易懂的STM32完整启动流程分析

它通常是用汇编语言写的,负责在 C 语言环境准备好之前,把硬件初始化搞定。在汇编中,标号的位置由其定义处决定,因此 __initial_sp 的地址是 Stack_Mem 的起始地址加上 Stack_Size,也就是堆栈的最高地址。(栈顶),程序启动时,CPU 会将这个地址加载到 SP 寄存器,作为堆栈的初始指针,随着数据压栈,SP 会从这个地址开始向下(地址减小)移动。,通常位于 Flash 的起始地址(例如 0x08000000),用于存储一些关键信息,包括堆栈顶部,复位函数,中断回调函数的地址。

2025-03-05 16:15:36 1466

原创 回调函数为什么会在嵌入式开发中应用如此广泛?

回调函数在嵌入式固件开发中之所以广泛应用,是因为它灵活、模块化、适合异步操作,还能优化资源。从中断处理到事件驱动,再到模块解耦,它都是不可或缺的“帮手”。只要注意上下文、嵌套、错误和性能问题,就能充分发挥它的优势,让代码更优雅,系统更高效。

2025-03-04 15:14:52 1005

原创 I²C总线协议简单,为何实现起来这么复杂?

比如,通信失败可能是电源不稳、时钟源漂移,甚至是其他外设干扰导致的。I²C总线之所以难住这么多人,不是因为它有多高深,而是因为它把嵌入式开发的本质暴露无遗:硬件与软件的交织、理论与实践的碰撞、细节与系统的平衡。以前写传感器驱动程序,最怕就是IIC和SPI时序,这个项目调通了,换一个项目,换一款单片机,换一个传感器,同样的程序移植过去又不行了,看似简单,出现问题调起来还是挺头痛的。好消息是,现在大多数单片机,都有现成的库可以使用了,之前用ESP32,压根不用管底层时序啥的,直接调用函数就能用起来了。

2025-03-04 10:07:42 802

原创 为什么我学习STM32越深入反而越觉得自己什么都不懂?

说实话,我学STM32的过程也是一部"血泪史",不过在此之前,我已经工作了,维护过一些项目代码,高端的有NXP的ARM7单片机,所以对ARM内核有浅浅的了解,不至于连GPIO的几个模式都份不清楚。挑一个模块,比如GPIO或者定时器,专攻它。评论里大神一句"多看数据手册"轻飘飘扔过来,可手册几千页,翻开全是术语,连从哪下手都不知道,最终明明花了很多时间去学,却连个简单功能都搞不定。另外,调试不是能现学现卖的,是需要经验积累的,经验越丰富,越能一针见血,从开发板阶段就开始刻意练习,到做项目时就游刃有余了。

2025-03-03 20:53:38 756

空空如也

空空如也

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

TA关注的人

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