自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 【实战】边缘AI怎么落地MCU?TinyML从模型训练到STM32/STC部署的完整七步流程(附代码)

我们团队的做法是先设个比较大的值(比如50KB),看编译报不报错,然后逐步往下砍,砍到刚好不报错为止,留个10%的余量就行。实测数据——语音关键词唤醒任务(10分类)中,FP32精度96.2%,INT8 PTQ精度94.8%(降1.4%),INT8 QAT精度95.7%(降0.5%),完全满足工程需求。云端AI要海量数据,TinyML要的是**场景覆盖率**。我们的做法是把模型权重存在Flash的独立分区(比如0x08040000),跟应用程序代码分离,支持**模型单独OTA升级**,不用刷整个固件。

2026-11-10 14:12:44 7

原创 【实战】STM32电源纹波300mV降不下来?嵌入式去耦电容从ESR/ESL到SSN量化计算的完整实战

去耦电容的核心不是"容值够不够大",而是。

2026-11-06 14:13:18 231

原创 【实战】STM32时钟跑飞、延时慢9倍?嵌入式设备CSS+SysTick+MCO三道防线实操(附HAL代码)

HSE失效不是小概率的"倒霉事",而是户外设备、震动环境、低成本晶振批次里必然会遇到的故障模式。CSS负责发现并保命,SysTick负责让时间基准不随频率漂移,MCO负责让整个过程可观测——三者配齐,STM32的时钟可靠性才从"祈祷晶振别坏"变成"坏了也能降级运行"。落地时记住两个位(CSSON、CSSC)和一个公式(SysTick重装值=fSYSCLK/1000-1,HAL口径),剩下的就是上板验证。

2026-11-03 22:16:44 250

原创 【实战】嵌入式高速PCB阻抗控制怎么做?从叠层设计到打样验证的踩坑记录(附阻抗计算C代码)

阻抗控制说到底是个流程问题:叠层先定、线宽让板厂按实际工艺算、投板前书面确认、回来必查测试报告。这四步做到位,嵌入式物联网设备上的USB、以太网、射频基本不会在阻抗上翻车;省掉任何一步,都可能用几周的调试时间去换几十块钱的打样费。

2026-10-30 14:33:29 136

原创 【实战】设备重启后EEPROM参数乱成一团?嵌入式存储从复位监控到双备份的四层防护(附STM32 HAL代码)

EEPROM数据可靠性从来不是某一颗器件的问题,而是电源、复位、软件、冗余四层设计的系统工程:器件上让EEPROM比MCU更抗低压并用WP常态写保护,电源上用复位监控芯片(或片内BOR)杜绝非稳定区写操作,软件上写后等足写周期再回读校验,最后用双备份加CRC兜底自愈。按这套四层防护做下来并跑完千次开关机循环验证,参数丢失就能从"偶发"变成"不可复现"——这也是工业设备量产前必须完成的一项可靠性验证。

2026-10-27 15:03:08 143

原创 【实战】Modbus RTU一上现场就丢包?RS485总线的7步物理层排障(附STM32 HAL完整代码)

选型的第一道分水岭是单位负载TIA/EIA-485-A规定标准负载为12kΩ,一只1 UL的收发器占一份总线负载,传统32节点上限就是这么来的。1/8 UL的器件输入阻抗做到96kΩ,理论上可挂256个节点。很多现场"挂到第20台就开始不稳",根因就是用了1 UL的老器件还按32节点去规划。第二道分水岭是隔离。跨柜、跨楼层、走室外桥架的链路,两端地电位差动辄几伏到几十伏,超过收发器共模范围就会误码甚至损坏——这种场景要么直接上隔离收发器,要么在MCU与收发器之间加数字隔离器。型号供电最高速率。

2026-10-20 22:32:16 93

原创 【实战】STM32通信数据总校验失败?嵌入式CRC16从按位运算到查表法的完整C代码实战

CRC 的本质就是"移位 + 异或",多项式选择、查表优化、正反相切换都只是同一件事的不同形态;Modbus RTU 的成败关键不在算法有多快,而在两端的初值和位序是否严格对齐。把本文这三段 C 代码(按位、查表、反相)收进你的工程模板,以后遇到任何帧格式,改个多项式和初值就能直接跑。

2026-10-16 14:10:59 192

原创 【实战】MQTT上云数据老是丢?STM32+ESP8266断线重连与QoS调优的工程笔记(附HAL库完整代码)

MQTT(Message Queuing Telemetry Transport)是物联网领域事实标准的轻量级消息协议,靠发布/订阅模型天然适配海量设备连接。但很多人在实际项目里发现——数据上了云,库里就是查不到;或者弱网环境下丢包严重,导致业务数据不完整。下面把整个链路从协议到底层代码逐一展开。

2026-10-13 14:09:38 49

原创 【实战】STM32上I2C、SPI、UART到底该用哪个?从总线仲裁到HAL代码的选型笔记

传感器扎堆选,Flash和屏幕这种吃带宽的上,跟4G模组或上位机通信用(工业场景挂RS-485)。三种协议不是谁比谁强,而是各自有明确的舒适区,用错地方才是项目里最隐蔽的坑。笔者在智慧供暖RTU项目中同时挂过SHT30(I2C)、W25Q128(SPI)和EC200S(UART),引脚规划踩过好几次雷,这篇笔记把时序、电气特性和代码一起整理出来,供参考。

2026-10-09 14:08:04 190

原创 【实战】CAN总线通信调试了3天还是不通?STM32 bxCAN配置+PHY层排障完整记录

CAN总线不是万能方案——它需要每个帧不超过8字节(CAN FD可到64字节),不适合传视频或文件。但在实时性、可靠性、抗干扰性要求高的工业控制场景里,它仍然是性价比最高的选择。掌握三个要点就能覆盖80%的工程需求:一是波特率采样点设在75%~87.5%,二是总线两端必须挂120Ω终端电阻,三是用HAL库时先开回环模式验证软件再切正常模式。把这三点做到位,CAN总线调试基本不会卡太久。关于CAN总线的内容就写到这里。

2026-10-06 14:07:07 197

原创 【实战】STM32 ADC采集数据乱跳?从参考源选型到软件滤波的工程调优笔记(附HAL库完整代码)

高精度ADC采集是个系统工程,从参考源、前端运放、电源、PCB布局到软件滤波、校准,每个环节都影响最终精度。硬件做扎实了,软件稍微处理一下就能出好数据;硬件没做好,再复杂的算法也救不回来。希望这篇笔记对你有用。如果你的采集项目也遇到了精度或者干扰的问题,欢迎评论区交流,各种奇奇怪怪的坑,咱们一起琢磨。还想接着看【实战】STM32挂4路传感器数据全乱?从同步采到卡尔曼融合的调坑笔记——多通道传感器融合的进阶做法,正好接在本文后面【实战】STM32做PID温控总是过调?

2026-10-02 14:06:45 185

原创 【实战】STM32挂4路传感器数据全乱?从同步采到卡尔曼融合的调坑笔记(附HAL完整代码)

时序就是精度。再贵的传感器,采样时刻对不齐,融合出来的数据都是摆设。DMA加定时器中断,这俩组合拳打出去,同步性基本就有保障了。补偿先于融合。别上来就堆算法,先把每颗传感器自己的温漂、非线性误差处理好。地基没打牢,上面盖再高的楼都是歪的。硬件噪声决定了算法的天花板。PCB上的电源纹波、地弹、串扰,这些东西是任何数字滤波都没法完全消除的。Layout的时候多花两天琢磨地怎么分、电源怎么滤,比后期写几百行滤波代码管用多了。如果你也在做多传感器采集系统,建议把80%的精力放在同步机制和温度补偿这两件事上。

2026-09-29 14:33:57 203

原创 【实战】STM32 OTA升级总变砖?Bootloader双备份+断点续传的工程避坑指南(附完整HAL代码)

OTA Bootloader占的代码量通常不到全系统的5%,却决定了100%的升级可靠性。笔者的经验是:Bootloader要单独评审、单独测试、单独冻结版本,不要和APP混在一起迭代。通信链路没有绝对的好坏,NB-IoT适合电池供电的低速场景,4G适合有市电的实时场景,以太网适合工业网关——选最匹配业务场景的就行。双备份是底线,验签是红线,断点续传是保险丝,这三样做到位,OTA基本就不会出大问题。STM32 OTA固件升级与Bootloader设计——引导加载、双区切换与断点续传的落地实现。

2026-09-25 14:07:04 175

原创 【实战】STM32做PID温控总是过调?从参数整定到PWM脉冲输出的工程调优笔记(附HAL库完整代码)

STM32做PID温度控制,公式本身不难,难的是工程细节。采样时间、脉冲周期、最小脉宽这三个量的配比关系直接决定控制品质,积分饱和处理和微分环节的设计细节决定了过调量大小,死区和控制带则是提升稳定性的利器。数据来源:西门子《PID温度控制》手册(A5E00447393),参数经验值结合了笔者团队在多个工业温控项目上的实测验证。做温控不用追求一步到位,先把三条经验法则守住,再慢慢微调GAIN和TI,基本上都能调出满意的效果。

2026-09-18 14:11:34 284

原创 【实战】STM32同时驱动I2C+SPI+UART三类传感器,CPU占用率从58%压到8%的HAL库调优实录(附完整代码)

多传感器驱动的核心不是把每个传感器调通,而是让它们在同一颗MCU上高效协同。笔者的经验顺序是:先根据传感器特性分配合适的接口(I2C省线、SPI快速、UART接模组),再把阻塞轮询改成DMA或中断,最后用定时器统一调度时序。按这个顺序来,CPU占用率从58%压到8%并不困难。传感器驱动写好了,整个物联网节点才能稳稳地跑在野外半年不换电池。

2026-09-15 14:44:30 259

原创 【实战】STM32低功耗实战:电池供电终端功耗从8.6mA压到2.1mA的调优记录(附完整HAL代码)

STM32低功耗没有银弹,只有系统化思维加精细化执行。核心就四步:选对MCU(L4/U5看场景)、配好时钟(MSI替代PLL)、管好GPIO(模拟输入防漏电流)、用活Stop模式(LPTIM定时唤醒)。按这个顺序逐步优化,并在每个节点用电流表实测,功耗从8.6mA压到2.1mA并不困难。低功耗设计的终极目标,是让电池供电的物联网终端真正具备大规模部署的商业可行性。

2026-09-12 17:50:36 185

原创 【实战】STM32固件加密防破解:读保护+A5陷阱+EEPROM密钥三层防护怎么搭?(附可运行代码)

对成本敏感的物联网产品至少上 L1 级(读保护+软件陷阱),100~1000 元的工业控制设备建议 L2 级(再加 EEPROM 密钥+运行时校验+封装混淆),破解成本能拉高到 5000 元以上,远超仿冒收益。下面把每层怎么落地、代码怎么写说清楚。

2026-09-04 21:28:39 242

原创 【实战】STM32跑TinyML边缘AI:嵌入式物联网设备从模型量化到MCU推理部署全流程(附可运行代码)

动手训练之前,必须先明确三个约束条件:可用Flash、可用RAM、单帧推理延迟上限。这三个参数直接框定可选模型范围。模型类型典型结构Flash占用RAM占用推理延迟(Cortex-M4@80MHz)适用场景全连接网络(DNN)3层MLP, 128-64-1012-30 KB2-5 KB0.2-0.5 ms传感器异常检测、简单分类卷积神经网络(CNN)3层Conv+2层FC40-120 KB10-30 KB30-80 ms语音关键词、振动频谱识别深度可分离卷积。

2026-09-01 14:09:51 216

原创 【实战】STM32 ADC高精度采集全链路优化:从9.2bit到13.8bit,PT100采样从±2.1℃压到±0.15℃

内置的12位ADC,实际有效位数往往只有9~10bit,温度采集现场跳动±2℃是常态。笔者团队在工业网关项目中实测,通过"独立精密基准源+四阶无源滤波+PCB分区+64倍过采样+自适应卡尔曼"五招组合,把PT100测温通道的传感器采集、数据上云前的预处理,都有直接参考价值。

2026-08-29 08:10:07 208

原创 【实战】STM32死机怎么破?嵌入式物联网设备三层防死机架构:硬件看门狗+任务级喂狗+故障自恢复(附可运行代码)

MCU防死机的本质,是把"随机死机"变成"可检测、可恢复、可追溯"的受控事件:PCB抗干扰是地基,硬件看门狗是底线,任务级监控与自恢复决定故障后的恢复速度和用户体感。三层防线建议按"PCB基础防护→硬件看门狗→窗口/任务级监控→故障自恢复"的顺序实施,任何一层缺失都会让可靠性出现明显短板——单靠缩短喂狗间隔,解决不了电磁干扰和逻辑死锁这两个最主要的死机来源。

2026-08-25 15:07:20 172

原创 【实战】STM32八大系列怎么选?F0/F1/F4/H7/L4/U5/WB/G0核心参数对比与嵌入式物联网项目选型决策(附选型评估代码)

STM32八大系列选型的核心原则是"够用即可,适度预留":功耗约束(电池供电锁L4/U5)是不可妥协的硬约束,关键外设(以太网/CAN-FD/无线RF/高级定时器)直接排除不支持的系列,算力需求(FPU/DSP/Cache)决定算法实现方式,成本预算在满足前三项的前提下选最低方案,生态与供货优先选上市2年以上的成熟型号并确认替代方案。对绝大多数工业控制和物联网项目,STM32F4是性能、生态、成本的最佳平衡点;电池供电场景选L4;极致性能选H7。

2026-08-21 15:12:36 446

原创 【实战】STM32物联网设备上云:MQTT接云数据库怎么落地?(附断线重连+消息去重代码)

设备数据要走到业务手里,得穿四道关:采集、传输、云平台接收、数据库存储。前两关好过,嵌入式工程师搞传感器采集是家常便饭;真正翻车的高发区在传输这一环——弱网环境频繁断连,数据丢在传输里;QoS级别选错了,消息要么重复要么丢失;云端收到消息却落不进数据库,还得额外写流转服务;设备认证太弱,被恶意连接也不知道。根据IoT Analytics的统计,物联网项目有43%的故障发生在设备到云端的通信环节,其中超过60%可以通过正确的MQTT配置和重连策略解决。说白了,通信层的坑,八成是协议没用对,不是硬件不行。

2026-08-18 17:46:33 397

原创 【实战】STM32做OTA远程升级,Bootloader双备份+签名验签+断点续传怎么落地?(附可运行代码)

OTA远程升级的价值在设备出货后才真正显现:Bootloader代码量通常只占全系统5%,却决定了100%的升级可靠性,值得单独评审、单独冻结版本;安全必须从第一天就内建在架构里,事后打补丁的验签方案很容易被绕过;通信选型决定体验边界,NB-IoT适合电池供电低速场景,4G适合供电充足的实时场景,LoRa适合无公网覆盖的偏远区域,没有最好的通信方式,只有最匹配业务场景的选择。

2026-08-14 16:38:09 412

原创 【实战】STM32嵌入式裸机扛不住多任务了?FreeRTOS/RT-Thread/Zephyr三大RTOS选型对比与STM32移植实录(附实测数据和完整代码)

做多任务采集时,裸机轮询的响应延迟和代码耦合往往最先崩盘。笔者团队实测结论:在网关这类"温度采集+4G上报+LCD刷新"并行的场景下,直接移植即可把任务抖动从±180ms压到±12ms,通信稳定性提升15倍,而且最低只要4KB RAM,STM32F103这种入门芯片就能跑。如果项目要快速集成4G、MQTT、JSON这些现成组件,的200+软件包生态更省事;要是涉及消防、医疗这类功能安全场景,的MPU内存隔离是唯一合规的选择。下面把三者的实测数据、移植代码和踩坑过程完整摊开讲。

2026-08-11 17:54:54 434

原创 【实战】STM32 CAN总线调试踩坑实录:从仲裁失败到500kbps稳定通信的嵌入式工程笔记

CAN总线调试是个系统工程,从时钟配置到物理层布线,任何一个环节糊弄都会埋雷。STM32的bxCAN控制器功能很强,但HAL库的默认配置未必适合你的场景——采样点、滤波器、自动恢复这些都要根据项目需求调整。核心思路就三条:位时序算准再配、滤波器按需接收、物理层按规范布线。做到这三点,大部分工业物联网项目的CAN通信问题都能迎刃而解。要是还不行,那就上CAN分析仪抓包,看看到底是仲裁输了、CRC错了还是ACK没收着,对症下药的效率比瞎调高一截。

2026-07-29 12:03:59 399

原创 【实战】STM32做Modbus网关,RTU数据转MQTT上云完整方案(附238节点实测数据)

Modbus协议本身没有过时,关键在于通过STM32网关完成"协议转换+数据映射+边缘计算"三步,建立稳定、安全、可扩展的云端数据链路。:- 现场设备:西门子VKF46温控阀(Modbus RTU,地址0x01–0x04)、丹佛斯SONO 2500热量表(Modbus RTU,地址0x05)- 网关选型:标准型INV-010网关,2路RS-485,每路挂接16台设备,轮询周期500ms- 上行链路:4G Cat.1,MQTT QoS 1,TLS 1.2加密- 数据规模:每台设备采集8个寄存器,全系统共。

2026-07-22 08:14:31 255

原创 【实战】STM32低功耗设计实战:电池供电物联网终端如何从5mA降到0.8μA?(附HAL库完整代码)

所有外设时钟始终开启,包括未使用的外设,造成不必要的动态功耗。在典型的电池供电场景中,一个容量为3000mAh的锂电池,若系统平均功耗为10mA,则续航时间仅为300小时(约12.5天);通过MSI主时钟配置将Run模式电流降低46%,通过Stop 2模式将静态电流降至0.82μA,通过GPIO模拟输入消除漏电流,三者叠加可实现76%的综合功耗降低。:经过上述配置,系统Run模式电流从5.2mA降至2.8mA(降幅46%),Sleep模式电流从3.8mA降至0.7mA(降幅82%)。

2026-07-17 14:12:36 216

原创 【实战】NB-IoT vs LoRa物联网通信选型全攻略:从技术参数到实测数据(附完整代码)

对于大规模工业场景(智慧供暖、环境监测、储能管理),通常推荐LoRa优先;对于城市分散场景(远程抄表、消防监控),推荐NB-IoT优先。当项目复杂度高、覆盖范围广时,LoRa做主干 + NB-IoT做补充的混合部署是最优解。—本文由沧州艾诺威电子设计有限公司技术团队原创,专注嵌入式系统开发、物联网方案、AI智能硬件。官网:www.czinv.com | 技术文档:czinv.com/docs。

2026-07-14 19:24:29 703

原创 【实战】STM32定时器PWM配置详解:频率、分辨率与死区时间全攻略(附完整代码)

一个完整的PWM输出配置涉及时钟源选择、预分频器(PSC)、自动重载寄存器(ARR)、捕获比较寄存器(CCR)、输出极性、对齐模式以及死区时间等多个参数的协同设置。当需要输出较高频率的PWM信号时(如50kHz以上),由于定时器计数器位数的限制,可用分辨率急剧下降。以16位定时器为例,若系统时钟为168MHz,输出50kHz PWM时,ARR+1 = 168000000 / 50000 = 3360,分辨率仅约11.7位。通道1与互补通道1N的输出信号相位关系不符合预期,或刹车输入未能正确触发输出关断。

2026-07-10 18:25:58 319

原创 STM32 vs ESP32 vs GD32:嵌入式MCU选型全面对比(附选型表)

内核架构核心建议。

2026-07-08 19:33:14 412

空空如也

空空如也

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

TA关注的人

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