发布日期:2025-10-16 20:10浏览次数:
今天唠唠单片机开发里那些坑人的事儿,全是血泪换来的教训。你们可别跟我似的,板子烧了好几块,头发都薅秃了才摸出点门道。
先说说上个月干的蠢事。新画了块STM32的板子,兴冲冲焊好元件,插上USB线想烧个点灯程序试试。结果你们猜咋?芯片摸上去烫手!赶紧拔电,晚了,一股糊味儿飘出来。当时我心里就咯噔一下:完了,烧片了。
拆开万用表一顿捅咕,发现3.3V和GND直通了。翻出电路板瞅半天,原来画PCB时偷懒,把3.3V的滤波电容封装搞反了。本该接地的脚怼到了电源上,相当于把电源直接往地上怼。三颗0805电容英勇就义,芯片直接开席。这教训太贵了,现在每画个封装都瞪大眼珠对着规格书看三遍。
紧接着是通信翻车现场。用ESP32跟传感器走I2C总线,在办公室调试得好好的,拿回家就抽风。数据隔三差五丢包,把波形抓出来一看,两根信号线跟抽筋似的乱抖。刚开始以为是程序逻辑写劈叉了,重新撸了三遍驱动代码,结果毛用没有。
折腾到半夜三点,饿得去厨房煮泡面。电磁炉一开,开发板的指示灯突然疯闪!合着是电磁炉辐射干扰了信号线。用铝箔裹成粽子才消停。现在调试通信前都先关微波炉电磁炉,跟做贼似的。
更绝的是上周的玄学事件。新打的板子死活不干活,插上仿真器连芯片都认不到。查电源正常,复位电路也靠谱,程序压根下载不进去。急得我差点找大仙算卦。
后来用示波器戳晶振脚才发现,那个8MHz的小铁壳子根本没振荡。把配套的负载电容从20pF换成22pF,晶振立马乖乖干活了。就因为差两个皮法的电容!厂家手册写着22pF,我偏按经验用了20pF,结果给自己挖坑。
这个错误说出来都丢人。用串口给屏发指令调界面,显示内容隔三差五跳错别字。"温度"变成"湿度","开启"变"并启"。查了两天协议帧才反应过来,我设的奇校验,屏那边是偶校验!双方校验方式对不上,数据错得妈都不认。现在每次初始化串口,第一件事就是狂敲文档确认校验规则。
这些坑说出来都是低级错误,可谁让单片机这玩意儿硬件软件搅和在一块儿?有时候灯不亮真不是代码问题,可能单纯是杜邦线被椅子腿压断了。大伙儿有同感的点个转发,让更多人躲开这些坑!