本文來源電子發(fā)燒友社區(qū),作者:cszzlsw, 帖子地址:https://bbs.elecfans.com/jishu_2030601_1_1.html
1,首先要獲得hisi3861芯片的wifi開發(fā)的相關接口和文檔:https://bbs.elecfans.com/jishu_2028821_1_1.html
這里就有相關的資料
2.liteos_m文檔庫里面也有好多資料,在doc文件夾里
3.首先需要連接wifi,可以參考文檔:Hi3861V100/Hi3861LV100 Wi-Fi軟件 開發(fā)指南.pdf
4.找到sta模式,里面講的很清楚,基于實際需求,把流程進行簡化:
STA功能開發(fā)的典型流程:
步驟1 調(diào)用hi_wifi_sta_start,啟動STA。
步驟2 調(diào)用hi_wifi_sta_scan,hi_wifi_sta_scan_results,獲取掃描結(jié)果。
步驟3 根據(jù)接入網(wǎng)絡需求,自定義篩選掃描結(jié)果,調(diào)用hi_wifi_sta_connect,進行連接。
步驟4 調(diào)用hi_wifi_sta_get_connect_info,查詢Wi-Fi連接狀態(tài)。
步驟5 連接成功后,調(diào)用netifapi_dhcp_start,啟動DHCP客戶端,獲取IP地址。
步驟6 調(diào)用hi_wifi_sta_disconnect ,離開當前連接的網(wǎng)絡。
步驟7 調(diào)用netifapi_dhcps_stop,停止DHCP客戶端。
步驟8 調(diào)用hi_wifi_sta_stop ,關閉STA。
----結(jié)束,注意5,6,7步驟不是必須的
5.在連接成功的毀掉開啟dhcp獲取ip地址之后并不會立馬得到ip地址,所以我們開啟一個線程不停得在等待拿到ip地址:
復制代碼
復制代碼
拿到ip地址之后我們的wifi才能段真正連接成功
6.之后就開啟tcp客戶端,相關代碼 在demo_app里有,在文檔:Hi3861V100/Hi3861LV100 lwIP 開發(fā)指南.pdf 里面也有,直接拷貝使用:
復制代碼
7.在電腦上用一個tcp工具,開啟一個tcp的服務器,如圖:
![142423jccz25p2goiozoi0.png](https://bbs.elecfans.com/data/attachment/forum/202101/17/142423jccz25p2goiozoi0.png)
8.把開發(fā)板上電,程序下載進去,經(jīng)過調(diào)試之后,正常就應該會連到電腦上的tcp服務器,然后并自動發(fā)送14個字節(jié)的數(shù)據(jù),如圖:
![142608bjg3g730vn86z0z0.png](https://bbs.elecfans.com/data/attachment/forum/202101/17/142608bjg3g730vn86z0z0.png)
9.在電腦tcp服務器回復對應數(shù)據(jù),可以在開發(fā)板終端上看到對應的數(shù)據(jù),到此,本階段實驗結(jié)束,為后面的實驗做鋪墊.
1,首先要獲得hisi3861芯片的wifi開發(fā)的相關接口和文檔:https://bbs.elecfans.com/jishu_2028821_1_1.html
這里就有相關的資料
2.liteos_m文檔庫里面也有好多資料,在doc文件夾里
3.首先需要連接wifi,可以參考文檔:Hi3861V100/Hi3861LV100 Wi-Fi軟件 開發(fā)指南.pdf
4.找到sta模式,里面講的很清楚,基于實際需求,把流程進行簡化:
STA功能開發(fā)的典型流程:
步驟1 調(diào)用hi_wifi_sta_start,啟動STA。
步驟2 調(diào)用hi_wifi_sta_scan,hi_wifi_sta_scan_results,獲取掃描結(jié)果。
步驟3 根據(jù)接入網(wǎng)絡需求,自定義篩選掃描結(jié)果,調(diào)用hi_wifi_sta_connect,進行連接。
步驟4 調(diào)用hi_wifi_sta_get_connect_info,查詢Wi-Fi連接狀態(tài)。
步驟5 連接成功后,調(diào)用netifapi_dhcp_start,啟動DHCP客戶端,獲取IP地址。
步驟6 調(diào)用hi_wifi_sta_disconnect ,離開當前連接的網(wǎng)絡。
步驟7 調(diào)用netifapi_dhcps_stop,停止DHCP客戶端。
步驟8 調(diào)用hi_wifi_sta_stop ,關閉STA。
----結(jié)束,注意5,6,7步驟不是必須的
5.在連接成功的毀掉開啟dhcp獲取ip地址之后并不會立馬得到ip地址,所以我們開啟一個線程不停得在等待拿到ip地址:
- case HI_WIFI_EVT_CONNECTED:
- printf("WiFi: Connectedn");
- printf("connected info: %s %sn", hisi_event->info.wifi_connected.ssid, hisi_event->info.wifi_connected.ifname);
- netifapi_dhcp_start(g_lwip_netif);
- {
- osThreadAttr_t attr;
- attr.name = "netTask";
- attr.attr_bits = 0U;
- attr.cb_mem = NULL;
- attr.cb_size = 0U;
- attr.stack_mem = NULL;
- attr.stack_size = 2048;
- attr.priority = 24;
- if (osThreadNew((osThreadFunc_t)netTask, NULL, &attr) == NULL)
- {
- printf("[LedExample] Falied to create LedTask!n");
- }
- }
- break;
- static void *netTask(const char *arg)
- {
- printf("netTask:%pn", arg);
- u8_t ip_arr[4] = {0};
- u8_t ip_zero[4] = {0};
- // 下面這種方式也可以打印 IP、網(wǎng)關、子網(wǎng)掩碼信息
- ip4_addr_t ip = {0};
- ip4_addr_t netmask = {0};
- ip4_addr_t gw = {0};
- int ret = 0;
- do
- {
- sleep(1);
- ret = netifapi_netif_get_addr(g_lwip_netif, &ip, &netmask, &gw);
- printf("netifapi_netif_get_addr: %drn", ret);
- if (ret == ERR_OK)
- {
- printf("ip = %srn", ip4addr_ntoa(&ip));
- printf("netmask = %srn", ip4addr_ntoa(&netmask));
- printf("gw = %srn", ip4addr_ntoa(&gw));
- memcpy(ip_arr, &ip.addr, sizeof(ip_arr));
- }
- } while (memcmp(ip_arr, ip_zero, sizeof(ip_arr)) == 0 || (ip_arr[0] != 192));
- printf("got ip :%d.%d.%d.%dn", ip_arr[0], ip_arr[1], ip_arr[2], ip_arr[3]);
- sample_tcp_client();
- return NULL;
- }
6.之后就開啟tcp客戶端,相關代碼 在demo_app里有,在文檔:Hi3861V100/Hi3861LV100 lwIP 開發(fā)指南.pdf 里面也有,直接拷貝使用:
- int sample_tcp_client(void)
- {
- s32_t sfd = -1;
- struct sockaddr_in srv_addr = {0};
- // struct sockaddr_in cln_addr = {0};
- // socklen_t cln_addr_len = sizeof(cln_addr);
- s32_t ret = 0, i = 0;
- /* tcp client connection */
- printf("going to call socketn");
- sfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sfd == -1)
- {
- printf("socket failed, return is %dn", sfd);
- goto FAILURE;
- }
- printf("socket succeeded, sfd %dn", sfd);
- srv_addr.sin_family = AF_INET;
- srv_addr.sin_addr.s_addr = inet_addr(PEER_IP);
- srv_addr.sin_port = htons(PEER_PORT);
- printf("going to call connectn");
- ret = connect(sfd, (struct sockaddr *)&srv_addr, sizeof(srv_addr));
- if (ret != 0)
- {
- printf("connect failed, return is %dn", ret);
- goto FAILURE;
- }
- printf("connec succeeded, return is %dn", ret);
- /* tcp client connection */
- /* send */
- memset(g_buf, 0, BUF_SIZE);
- strcpy((char *)g_buf, MSG);
- printf("calling send...n");
- ret = send(sfd, g_buf, sizeof(MSG), 0);
- if (ret <= 0)
- {
- printf("send failed, return is %d,i is %dn", ret, i);
- goto FAILURE;
- }
- printf("send finished ret is %dn", ret);
- /* send */
- /* recv */
- memset(g_buf, 0, BUF_SIZE);
- printf("going to call recvn");
- ret = recv(sfd, g_buf, sizeof(g_buf), 0);
- if (ret <= 0)
- {
- printf("recv failed, return is %dn", ret);
- goto FAILURE;
- }
- printf("recv succeeded, return is %dn", ret);
- printf("received msg is : %sn", g_buf);
- /* recv */
- lwip_close(sfd);
- return 0;
- FAILURE:
- lwip_close(sfd);
- // printf("errno is %dn", errno);
- return -1;
- }
![142423jccz25p2goiozoi0.png](https://bbs.elecfans.com/data/attachment/forum/202101/17/142423jccz25p2goiozoi0.png)
8.把開發(fā)板上電,程序下載進去,經(jīng)過調(diào)試之后,正常就應該會連到電腦上的tcp服務器,然后并自動發(fā)送14個字節(jié)的數(shù)據(jù),如圖:
![142608bjg3g730vn86z0z0.png](https://bbs.elecfans.com/data/attachment/forum/202101/17/142608bjg3g730vn86z0z0.png)
9.在電腦tcp服務器回復對應數(shù)據(jù),可以在開發(fā)板終端上看到對應的數(shù)據(jù),到此,本階段實驗結(jié)束,為后面的實驗做鋪墊.
![142814okmq6v6oqtztmk35.png](https://bbs.elecfans.com/data/attachment/forum/202101/17/142814okmq6v6oqtztmk35.png)
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
wi-fi
+關注
關注
14文章
2175瀏覽量
125210 -
HarmonyOS
+關注
關注
79文章
1984瀏覽量
30687 -
HiSpark
+關注
關注
1文章
156瀏覽量
6964
發(fā)布評論請先 登錄
相關推薦
Wi-Fi 8要來了!未來Wi-Fi技術演進方向揭秘
產(chǎn)品銷售中,雖然Wi-Fi 7產(chǎn)品的銷量份額快速從年初的個位數(shù)百分比增長至14%,但Wi-Fi 6產(chǎn)品的銷量份額依然穩(wěn)定在60%左右。如果從存量設備來看,那么Wi-Fi 7路由器的占比將遠遠小于這個數(shù)。 ? 智能手機等終端設備已
![<b class='flag-5'>Wi-Fi</b> 8要來了!未來<b class='flag-5'>Wi-Fi</b>技術演進方向揭秘](https://file1.elecfans.com/web2/M00/0C/49/wKgZomdCKbGANgatAA1CFWsZgC4311.png)
華為海思正式進入Wi-Fi FEM賽道?
大家都知道了,2018年11 月離開銳迪科(RDA),前往福建晉江創(chuàng)立三伍微,專注于Wi-Fi射頻前端芯片,從路由器Wi-Fi FEM,到手機Wi-Fi FEM,再到IoT FEM全覆
發(fā)表于 12-11 17:42
從Wi-Fi 4到Wi-Fi 7:網(wǎng)速飆升40倍的無線革命
1 Wi-Fi技術的快速發(fā)展 每一代新的Wi-Fi協(xié)議發(fā)布,都會帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網(wǎng)絡技術顯著提升,實
![從<b class='flag-5'>Wi-Fi</b> 4到<b class='flag-5'>Wi-Fi</b> 7:網(wǎng)速飆升40倍的無線革命](https://file1.elecfans.com/web3/M00/01/8E/wKgZO2dWUgCAQStIAAAs-eJkIc8590.png)
Wi-Fi 7與Wi-Fi 6E有什么區(qū)別
也許很多人還在考慮是否要將使用的Wi-Fi設備升級到Wi-Fi 6或Wi-Fi 6E,而這些標準的繼任者卻已經(jīng)開始“登堂入室”了。Wi-Fi 7是新一代
全方位性能對比 | 遠距離Wi-Fi VS 傳統(tǒng)Wi-Fi
8000多臺設備,對比Wi-Fi 6 AP可支持2000臺設備,接入點容量是其四倍。這大大增加了能連接的應用場景終端數(shù)量,無論在智慧城市、智能建筑和智慧工廠都能大顯身手。抗干擾性傳統(tǒng)WiFi
移遠通信Wi-Fi HaLow 模組FGH100M榮獲IoT Evolution World 2024年度IoT產(chǎn)品獎
Wi-FiHaLow模組FGH100M憑借其在連接性、創(chuàng)新性等方面的優(yōu)異表現(xiàn),獲此殊榮。與其他Wi-Fi技術相比,Wi-FiHaLow不僅引入了一種低功耗
![移遠通信<b class='flag-5'>Wi-Fi</b> HaLow 模組FGH100M榮獲<b class='flag-5'>IoT</b> Evolution World 2024年度<b class='flag-5'>IoT</b>產(chǎn)品獎](https://file.elecfans.com/web2/M00/7E/74/poYBAGOFf5yATa2-AAAcsfElJTM256.png)
AT 0.60.0.0看不到我的Wi-Fi網(wǎng)絡,為什么?
Wi-Fi 網(wǎng)絡并連接到它。當然,我的路由器AP SSID已啟用,我可以在其他設備上看到此網(wǎng)絡。這不是什么大問題,但我認為它仍然是一個錯誤。
在GMR
在GMR
AT版本:0.60.0.0(Jan
發(fā)表于 07-18 08:31
為什么ESP8266沒有檢測到Wi-Fi的SSID?
你好,我的ESP8266沒有檢測到我家Wi-Fi的SSID。我嘗試打開我的 iPhone 熱點,我可以正常查看和連接(我也成功連接到 MQTT)。相反,沒有辦法看到我家的Wi-Fi。
發(fā)表于 07-09 06:44
使用的是esp32官方的Wi-Fi例程,一直連接不上Wi-Fi怎么解決?
使用的是esp32官方的Wi-Fi例程
一直連接不上Wi-Fi
日志:
ESP-ROM:esp8684-api2-20220127
Build:Jan 27 2022
rst:0x1
發(fā)表于 07-02 07:21
esp32c3為什么無法連接WiFi?
Wi-Fi的頻段是2.4g,密碼正確,使用開發(fā)板可以正常連接,使用設計的PCB燒錄固件后無法連接,問題出在硬件設計上。但是掃描WiFi信號是
發(fā)表于 07-01 06:42
為什么啟用Wi-Fi后,選擇EXT0作為喚醒源功耗會增加1mA?
1、當不啟用Wi-Fi,選擇EXT0為喚醒源,系統(tǒng)進入deep_sleep,功耗10uA左右;
2、當啟用Wi-Fi,選擇EXT0為喚醒源,系統(tǒng)關閉Wi-Fi后再進入deep_sleep,功耗在
發(fā)表于 06-24 07:48
AIROC? Wi-Fi和藍牙組合連接掉線的原因?怎么解決?
我最近購買了一臺配備 AIROC? Wi-Fi 和藍牙組合模塊的筆記本電腦。 大多數(shù)時候,Wi-Fi 連接都能正常使用圖書館創(chuàng)世紀網(wǎng)站ePUB 轉(zhuǎn)換工具、在線書店和學術出版物,但我注意到藍牙連
發(fā)表于 05-24 07:48
全方位性能對比 | 遠距離Wi-Fi VS 傳統(tǒng)Wi-Fi
Wi-Fi通信技術當前已成為無線局域網(wǎng)(WLAN)最常見、應用非常廣泛的通信技術。從Wi-Fi4、Wi-Fi5和Wi-Fi6,傳統(tǒng)的WiFi
![全方位性能對比 | 遠距離<b class='flag-5'>Wi-Fi</b> VS 傳統(tǒng)<b class='flag-5'>Wi-Fi</b>](https://file.elecfans.com/web2/M00/31/6C/poYBAGIPv8KAR15KAAAmGpkR-FM834.png)
驗證物聯(lián)網(wǎng)Wi-Fi HaLow用例的MM6108-EKH08開發(fā)套件來啦
驗證物聯(lián)網(wǎng)Wi-Fi HaLow用例的MM6108-EKH08開發(fā)套件來啦 MM6108-EKH08開發(fā)套件專為驗證物聯(lián)網(wǎng)Wi-Fi HaLow用例而設計。該
![驗證物聯(lián)網(wǎng)<b class='flag-5'>Wi-Fi</b> HaLow用例的MM6108-EKH08開發(fā)<b class='flag-5'>套件</b>來啦](https://file1.elecfans.com/web2/M00/C8/D1/wKgaomYXYLWAX25lAACMPTBW4N0471.jpg)
WI-FI基礎知識及飛易通SOC模塊
“WiFi”或“Wifi”,但是這些寫法并沒有被Wi-Fi聯(lián)盟認可。 一、通常說的WI-FI幾: 第一代:以IEEE 802.11為準,工作頻段為2.4GHz, 最高速率半雙工2Mbi
![<b class='flag-5'>WI-FI</b>基礎知識及飛易通SOC模塊](https://file1.elecfans.com//web2/M00/C2/46/wKgZomXhfUyAT9JKAAGr3vPkk8k937.jpg)
評論