From 8232ec2c55a5057ebc7b76c47506afda2529fb2f Mon Sep 17 00:00:00 2001 From: wangfq Date: Wed, 8 Jul 2026 16:11:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(iot=5Fmqtt):=20=E6=94=B9=E7=94=A8=20net=5Fs?= =?UTF-8?q?rv.c=20mqtt=5Fpublish()=20=E5=8F=91=E9=80=81=E4=BC=A0=E6=84=9F?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit iot_mqtt_publish_sensor() 原先调用 iot_mqtt_publish() → iot_mqtt_send() → WCHNET_SocketSend() 从主循环发送导致重启。 改为调用 net_srv.c 的 mqtt_publish()(与 report_config 响应 共用同一路径,已验证在中断上下文中稳定工作)。 同时在 net_srv.h 中声明 mqtt_publish() 供跨文件调用。 --- vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c index 656035c..9dff79c 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c @@ -439,7 +439,8 @@ void iot_mqtt_publish_sensor(void) { if (plen > 450) { PRINT("IOT: payload too large (%u bytes), skipping\n", plen); } else { - iot_mqtt_publish(topic, payload, plen, 0); + /* Use net_srv.c mqtt_publish() -- same path as command responses (proven stable) */ + mqtt_publish(topic, payload, 0); } }