diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c index 6a8b13c..3416c86 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c @@ -792,12 +792,14 @@ static void iot_connect_broker(void) { void iot_mqtt_handle_sock_int(uint8_t socketid, uint8_t intstat) { if (socketid != g_iot_socket) return; - /* CONNECT 成功 — 仅标记状态, WCHNET_HandleSockInt 已设好 RecvBuf 和 KeepLive */ + /* CONNECT 成功 — 在中断上下文直接发 MQTT CONNECT + (对齐旧 mqtt_connect 行为: WCHNET SocketSend 在中断外会 hard fault) */ if (intstat & SINT_STAT_CONNECT) { PRINT("IOT: TCP connected (sock=%d)\n", socketid); g_iot_state = IOT_STATE_TCP_CONNECTED; _iot_recv_len = 0; - // 不在此发送 CONNECT,等下一轮 iot_mqtt_poll 处理 + iot_mqtt_send_connect(); // 在中断上下文发, 不延后到 poll + g_iot_state = IOT_STATE_MQTT_CONNECTING; } /* 收到数据 */