W800开发套件鸿蒙系统教程

W800开发套件鸿蒙系统教程


3.2.1 STA模式连接WiFi热点

任然使用上一节的固件运行,在串口发送数据:t-connect("ssid","pwd"),其中ssid改为你想要连接的热点名,pwd改为你的热点的密码,然后点击发送按钮将命令发给w800,w800会连接你所设置的热点。下面是连接成功后串口输出信息:

<center></center>

当输出了IP地址时,说明w800已经连接上热点并分配到IP。

STA模式进行wifi连接的源码位于文件wm_connect_net_demo.c中。下面是源码关键片段:

int demo_connect_net(char *ssid, char *pwd)
{
    struct tls_param_ip *ip_param = NULL;
    u8 wireless_protocol = 0;

    if (!ssid)
    {
        return WM_FAILED;
    }

    printf(&quot;\nssid:%s\n&quot;, ssid);
    printf(&quot;password=%s\n&quot;, pwd);
    tls_wifi_disconnect();

    tls_param_get(TLS_PARAM_ID_WPROTOCOL, (void *) &amp;wireless_protocol, TRUE);
    if (TLS_PARAM_IEEE80211_INFRA != wireless_protocol)
    {
        tls_wifi_softap_destroy();
        wireless_protocol = TLS_PARAM_IEEE80211_INFRA;
        tls_param_set(TLS_PARAM_ID_WPROTOCOL, (void *) &amp;wireless_protocol, FALSE);
    }

    tls_wifi_set_oneshot_flag(0);

    ip_param = tls_mem_alloc(sizeof(struct tls_param_ip));
    if (ip_param)
    {
        tls_param_get(TLS_PARAM_ID_IP, ip_param, FALSE);
        ip_param-&gt;dhcp_enable = TRUE;
        tls_param_set(TLS_PARAM_ID_IP, ip_param, FALSE);
        tls_mem_free(ip_param);
    }

    tls_netif_add_status_event(con_net_status_changed_event);
    tls_wifi_connect((u8 *)ssid, strlen(ssid), (u8 *)pwd, strlen(pwd));
    printf(&quot;\nplease wait connect net......\n&quot;);

    return WM_SUCCESS;
}

STA功能主要是调用tls_wifi_connect((u8 *)ssid, strlen(ssid), (u8 *)pwd, strlen(pwd));这个SDK提供的函数实现热点连接,第一个参数是热点名(字符串);第二个是热点名的长度;第三个是热点密码;第四个是密码的字符串长度。

连接前需要调用tls_wifi_disconnect()先断开连接。

调用tls_netif_add_status_event(con_net_status_changed_event)可以设置wifi事件监听回调函数,参数是监听函数。

页面列表

ITEM_HTML