W800开发套件鸿蒙系统教程

W800开发套件鸿蒙系统教程


3.2.1 STA模式连接WiFi热点

<p>任然使用上一节的固件运行,在串口发送数据:<code>t-connect("ssid","pwd")</code>,其中ssid改为你想要连接的热点名,pwd改为你的热点的密码,然后点击发送按钮将命令发给w800,w800会连接你所设置的热点。下面是连接成功后串口输出信息:</p> <center>![](https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=eba67fb65a0b62dbd3cd160f88e4abcf)</center> <p>当输出了IP地址时,说明w800已经连接上热点并分配到IP。</p> <p>STA模式进行wifi连接的源码位于文件<code>wm_connect_net_demo.c</code>中。下面是源码关键片段:</p> <pre><code class="language-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("\nssid:%s\n", ssid); printf("password=%s\n", 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("\nplease wait connect net......\n"); return WM_SUCCESS; }</code></pre> <p>STA功能主要是调用<code>tls_wifi_connect((u8 *)ssid, strlen(ssid), (u8 *)pwd, strlen(pwd));</code>这个SDK提供的函数实现热点连接,第一个参数是热点名(字符串);第二个是热点名的长度;第三个是热点密码;第四个是密码的字符串长度。</p> <p>连接前需要调用<code>tls_wifi_disconnect()</code>先断开连接。</p> <p>调用<code>tls_netif_add_status_event(con_net_status_changed_event)</code>可以设置wifi事件监听回调函数,参数是监听函数。</p>

页面列表

ITEM_HTML