飞控算法从入门到精通 · 121、无线通信链路:数传与图传一、从一次炸机说起去年夏天,我在郊外调试一架四轴,飞控是自研的STM32F4方案,数传用的433MHz模块,图传是5.8G模拟。一切看起来都很正常——直到飞机飞到大约800米外,突然失控,OSD画面先卡住,然后黑屏,紧接着遥控器报警“信号丢失”。飞机掉进了水库。事后复盘,问题出在数传与图传的频谱打架。5.8G图传的发射功率是200mW,天线就在数传模块旁边,距离不到3厘米。433MHz数传模块的接收前端被图传的谐波干扰直接饱和,导致链路中断。飞控收不到地面站的指令,自然就触发了失控保护——但我的失控保护逻辑写的是“悬停等待”,而不是“返航”,因为当时觉得“数传断了图传还能看”,结果图传也断了。这个教训让我意识到:无线通信链路不是“能通就行”,而是一个需要从天线布局、频段选择、协议栈到软件容错全链路设计的系统工程。今天这篇笔记,就聊聊数传和图传那些“踩过的坑”和“别这样写”的代码。二、数传链路:别把串口当儿戏2.1 物理层选型:不是功率越大越好很多新手喜欢买“大功率数传模块”,觉得1W发射肯定比100mW强。实际调试中,我见过太多因为功率过大导致接收机前端饱和的例子——尤其是近距离调试时,发射功率开满,接收机AGC(自动增益控制)被压死,反而收不到数据。个人经验:近距离(100m):发射功率调到10-20mW就够