W801的WiFi重連

發布於 2022-05-26 23:13:09

我用的W801模塊,先讓路由器穩定後,再給w801上電配置WiFi,能成功連接路由器,我用的是UDP廣播通信,也很穩定,但模塊不斷電重啟路由器,模塊判斷失敗後再重新初始化配置就無法重連,只能讓w801模塊重新上電或按下複位件才能連接,不確定是哪部分數據需要清楚嗎?我已經提前關閉了socket,主函數如下
while(1)

{
    while(wifi_connect_ST==0)//判斷連接狀態,0為未連接
        {
     close_udp_socket_demo(); //關閉socket
     demo_connect_net(ssid,pwd);
     tls_os_time_delay(3000);
        }
    socket_udp_demo(1,20000,"192.168.1.255");
    tls_os_time_delay(100);
    //發送數據
    if(wifi_connect_ST==1)
     {
      udp_send_data_self(test_data,10);
      tls_os_time_delay(500);
      }
    
}

先開路由器後給模塊上電這程序沒問題,中途重啟路由器就無法登錄,求大神指點

查看更多

關注者
0
被浏覽
2.1k
2 個回答
ZYQ
ZYQ 2022-05-28
我已不再支持W80X任何相關問題的回複,請大家不要私信,有問題找 isme 謝謝

不用這麼麻煩 直接調用 setAutoConnectMode(); 讓他自動重新連接就OK,關閉socket 注冊個回調函數在裡面判斷下就OK tls_netif_add_status_event(); 裡面有斷開事件

isme
isme 認證專家 2022-05-30
冰鎮大西瓜

自動重連建議參考這個demo,通過藍牙配網成功後也會自動打開自動重連功能。

    u8 auto_reconnect = 0xff;
    tls_wifi_auto_connect_flag(WIFI_AUTO_CNT_FLAG_GET, &auto_reconnect);
    if(auto_reconnect != WIFI_AUTO_CNT_ON)
    {
        auto_reconnect = WIFI_AUTO_CNT_ON;
        tls_wifi_auto_connect_flag(WIFI_AUTO_CNT_FLAG_SET, &auto_reconnect); 
        tls_wifi_connect((u8 *)"w600", strlen("w600"), (u8 *)"12345678", strlen("12345678"));
        printf("--->WIFI_AUTO_CNT_FLAG_SET ON\n");
    }

撰寫答案

請登錄後再發布答案,點擊登錄

發布
問題

分享
好友

手機
浏覽

掃碼手機浏覽