邯郸网站建设报价,网站外链是什么,网站不显示内容吗,专门做水果的网站引言 
我所计划的WS63E测试要实现MQTT联网#xff0c;所以首先需要确保开发板连接WiFi。今天来测试一下WiFi功能。 
程序分析 
WiFi客户端的例子在src/application/samples/wifi/sta_sample目录下。这个例子看上去和hi3861的例子差不多。 
这段程序是一个用于嵌入式设备的Wi-F…引言 
我所计划的WS63E测试要实现MQTT联网所以首先需要确保开发板连接WiFi。今天来测试一下WiFi功能。 
程序分析 
WiFi客户端的例子在src/application/samples/wifi/sta_sample目录下。这个例子看上去和hi3861的例子差不多。 
这段程序是一个用于嵌入式设备的Wi-Fi StationSTA模式的示例程序它使用了LwIP网络堆栈和CMSIS-RTOS API。程序的主要目的是连接到一个指定的Wi-Fi网络并获取IP地址。以下是对程序的分析 头文件包含程序包含了多个头文件这些头文件提供了网络接口、Wi-Fi热点配置、基础类型定义、标准库、串口通信、操作系统服务、应用初始化和系统抽象层等功能的支持。  宏定义定义了一些常量如Wi-Fi接口名称的最大长度、SSID的最大长度、扫描AP的限制、MAC地址的长度等。  事件回调函数定义了两个静态函数wifi_scan_state_changed和wifi_connection_changed它们分别在Wi-Fi扫描状态变化和连接状态变化时被调用。  Wi-Fi事件结构体定义了一个wifi_event_stru结构体用于注册Wi-Fi事件回调。  状态枚举定义了一个枚举wifi_state_enum用于跟踪STA模式下的不同状态。  全局变量定义了一个全局变量g_wifi_state用于保存当前的Wi-Fi状态。  扫描事件回调函数wifi_scan_state_changed函数在扫描完成时被调用它将全局状态设置为扫描完成。  关联事件回调函数wifi_connection_changed函数在连接状态变化时被调用它根据连接是否成功更新全局状态。  匹配目标AP函数example_get_match_network函数用于在扫描结果中找到指定的网络并填充连接请求信息。  关联状态查询函数example_check_connect_status函数用于检查是否成功连接到AP。  DHCP状态查询函数example_check_dhcp_status函数用于检查是否成功获取IP地址。  STA功能函数example_sta_function函数是STA模式的主要逻辑它按照状态枚举的顺序执行操作包括启动扫描、连接到AP、获取IP地址等。  初始化函数sta_sample_init函数用于初始化Wi-Fi事件回调、等待Wi-Fi初始化完成并调用example_sta_function函数。  任务入口函数sta_sample_entry函数用于创建一个名为sta_sample_task的线程该线程运行sta_sample_init函数。  程序入口app_run函数调用sta_sample_entry函数启动STA模式的任务。  
整体来看这个程序是一个完整的Wi-Fi Station模式的示例它展示了如何使用事件回调、状态机和网络接口来连接到一个Wi-Fi网络并获取IP地址。程序使用了CMSIS-RTOS API来创建线程和延时以及LwIP API来处理网络相关的操作。 
程序测试 
编译程序之前需要先修改程序中的SSID和密码设置。这个参数在example_get_match_network函数中。 
td_s32 example_get_match_network(wifi_sta_config_stru *expected_bss)
{td_s32  ret;td_u32  num  64; /* 64:扫描到的Wi-Fi网络数量 */td_char expected_ssid[]  my_softAP;td_char key[]  my_password; /* 待连接的网络接入密码 */td_bool find_ap  TD_FALSE;td_u8   bss_index;/* 获取扫描结果 */td_u32 scan_len  sizeof(wifi_scan_info_stru) * WIFI_SCAN_AP_LIMIT;wifi_scan_info_stru *result  osal_kmalloc(scan_len, OSAL_GFP_ATOMIC);if (result  TD_NULL) {return -1;}memset_s(result, scan_len, 0, scan_len);ret  wifi_sta_get_scan_info(result, num);if (ret ! 0) {osal_kfree(result);return -1;}/* 筛选扫描到的Wi-Fi网络选择待连接的网络 */for (bss_index  0; bss_index  num; bss_index ) {if (strlen(expected_ssid)  strlen(result[bss_index].ssid)) {if (memcmp(expected_ssid, result[bss_index].ssid, strlen(expected_ssid))  0) {find_ap  TD_TRUE;break;}}}/* 未找到待连接AP,可以继续尝试扫描或者退出 */if (find_ap  TD_FALSE) {osal_kfree(result);return -1;}/* 找到网络后复制网络信息和接入密码 */if (memcpy_s(expected_bss-ssid, WIFI_MAX_SSID_LEN, expected_ssid, strlen(expected_ssid)) ! 0) {osal_kfree(result);return -1;}if (memcpy_s(expected_bss-bssid, WIFI_MAC_LEN, result[bss_index].bssid, WIFI_MAC_LEN) ! 0) {osal_kfree(result);return -1;}expected_bss-security_type  result[bss_index].security_type;if (memcpy_s(expected_bss-pre_shared_key, WIFI_MAX_SSID_LEN, key, strlen(key)) ! 0) {osal_kfree(result);return -1;}expected_bss-ip_type  1; /* 1IP类型为动态DHCP获取 */osal_kfree(result);return 0;
} 
修改好SSID和密码就可以编译并下载程序了。程序启动后扫描附近的所有WiFi热点如果找到制定的热点就自动连接。  从这段日志看程序成功的连接到热点并通过DHCP协议获得了IP地址。 
完整的程序日志如下  
boot.
Flash Init Fail! ret  0x80001341
verify_public_rootkey secure verify disable!
verify_params_key_area secure verify disable!
verify_params_area_info secure verify disable!
verify_image_key_area secure verify disable!
verify_image_code_info secure verify disable!
SSB Uart Init Succ!
SSB Flash Init Succ!
verify_image_key_area secure verify disable!
verify_image_code_info secure verify disable!
Flashboot Uart Init Succ!
Flashboot Malloc Init Succ!
Flash Init Succ!
No need to fix SR!
flashboot version : 1.10.101
[UPG] upgrade init OK!
No need to upgrade...
flash_encrypt disable.
verify_image_key_area secure verify disable!
verify_image_code_info secure verify disable!
APP|Debug uart init succ.
[UPG] upgrade init OK!
APP|init_dev_addr, mac_addr:0x80,0x 0,0x73,0xdb,0x**,0x**,
xo_trim_temp_comp val:0 0
APP|AT uart init succ.
los_at_plt_cmd_register EXCUTE
APP|WARNING: main_initialise::thread[11] func is null
APP|[WIFI_STA_SAMPLE]::Create sta_sample_task succ.
cpu 0 entering schedulerAPP|btc open
[RADAR_LOG] alg ctrl read from nv [1][2][0][0][1][1][20]
device_main_init: 0!
hal_initialize_phy225
device_module_init:: succ!
cali_set_cali_mask:old[0x0] - new[0x1fa2]fe_rf_initialize
cali_offline_cali_entry enter
cali_set_cali_done_flag:old[0x0] - new[0x1]rf cali OK. time cost:22, ret:0
APP|[WIFI_STA_SAMPLE]::wifi_event_cb register succ.
APP|[WIFI_STA_SAMPLE]::wifi init succ.
drv_soc_ioctl ioctl_cmd-cmd7.
drv_soc_ioctl ioctl_cmd-cmd9.
drv_soc_ioctl ioctl_cmd-cmd17.
drv_soc_ioctl ioctl_cmd-cmd13.
drv_soc_ioctl ioctl_cmd-cmd35.
drv_soc_ioctl ioctl_cmd-cmd2.
drv_soc_ioctl ioctl_cmd-cmd2.
drv_soc_ioctl ioctl_cmd-cmd2.
drv_soc_ioctl ioctl_cmd-cmd2.
drv_soc_ioctl ioctl_cmd-cmd2.
drv_soc_ioctl ioctl_cmd-cmd2.
drv_soc_ioctl ioctl_cmd-cmd41.
APP|[WIFI_STA_SAMPLE]::STA enable succ.
APP|[WIFI_STA_SAMPLE]::Scan start!
drv_soc_ioctl ioctl_cmd-cmd14.
hmac_single_hal_device_scan_complete:vap[1] time[761] chan_cnt[13] chan_0[1] back[0] event[6] mode[0]
Scan::vap[1] find bss_num[28] in regdomain, other bss_num[0]
Srv:548:recive event  1
APP|[WIFI_STA_SAMPLE]::Scan done!.
Srv:1723:sta_scan_results cnt 28
APP|[WIFI_STA_SAMPLE]::Connect start.
Srv:find ssid[CU_fjGX] auth type[2] pairwise[1] ft_flag[0]
drv_soc_ioctl ioctl_cmd-cmd47.
drv_soc_ioctl ioctl_cmd-cmd47.
drv_soc_ioctl ioctl_cmd-cmd47.
drv_soc_ioctl ioctl_cmd-cmd16.
drv_soc_ioctl ioctl_cmd-cmd6.
drv_soc_ioctl ioctl_cmd-cmd6.
drv_soc_ioctl ioctl_cmd-cmd47.
APP|Hello world!
drv_soc_ioctl ioctl_cmd-cmd6.
drv_soc_ioctl ioctl_cmd-cmd5.
drv_soc_ioctl ioctl_cmd-cmd6.
drv_soc_ioctl ioctl_cmd-cmd6.
drv_soc_ioctl ioctl_cmd-cmd5.
drv_soc_ioctl ioctl_cmd-cmd1.
drv_soc_ioctl ioctl_cmd-cmd3.
drv_soc_ioctl ioctl_cmd-cmd1.
NOTICE:CONNECTED
drv_soc_ioctl ioctl_cmd-cmd6.
Srv:548:recive event  2
APP|[WIFI_STA_SAMPLE]::Connect succ!.
APP|[WIFI_STA_SAMPLE]::DHCP start.
xo update temp:4,diff:0,xo:0x3083c
APP|[WIFI_STA_SAMPLE]::STA DHCP success.
APP|[SYS INFO] mem: used:134448, free:229572; log: drop/all[0/0], at_recv 0.
APP|[SYS INFO] mem: used:134448, free:229572; log: drop/all[0/0], at_recv 0.
APP|[SYS INFO] mem: used:134448, free:229572; log: drop/all[0/0], at_recv 0.结语 
WS63E上实现WiFi比较容易下一阶段将添加MQTT连接华为云的代码。  文章转载自: http://www.morning.ggrzk.cn.gov.cn.ggrzk.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.ntlxg.cn.gov.cn.ntlxg.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.kybpj.cn.gov.cn.kybpj.cn http://www.morning.ysfj.cn.gov.cn.ysfj.cn http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.xxwhz.cn.gov.cn.xxwhz.cn http://www.morning.flqbg.cn.gov.cn.flqbg.cn http://www.morning.mggwr.cn.gov.cn.mggwr.cn http://www.morning.kxrld.cn.gov.cn.kxrld.cn http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn http://www.morning.4q9h.cn.gov.cn.4q9h.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.jhxtm.cn.gov.cn.jhxtm.cn http://www.morning.nftzn.cn.gov.cn.nftzn.cn http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn http://www.morning.mtymb.cn.gov.cn.mtymb.cn http://www.morning.zlxrg.cn.gov.cn.zlxrg.cn http://www.morning.nsmyj.cn.gov.cn.nsmyj.cn http://www.morning.mmzfl.cn.gov.cn.mmzfl.cn http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn http://www.morning.xsklp.cn.gov.cn.xsklp.cn http://www.morning.mhpkz.cn.gov.cn.mhpkz.cn http://www.morning.ryspp.cn.gov.cn.ryspp.cn http://www.morning.kstlm.cn.gov.cn.kstlm.cn http://www.morning.yqwsd.cn.gov.cn.yqwsd.cn http://www.morning.hzryl.cn.gov.cn.hzryl.cn http://www.morning.fxzgw.com.gov.cn.fxzgw.com http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn http://www.morning.jwxmn.cn.gov.cn.jwxmn.cn http://www.morning.flfxb.cn.gov.cn.flfxb.cn http://www.morning.syglx.cn.gov.cn.syglx.cn http://www.morning.xltdh.cn.gov.cn.xltdh.cn http://www.morning.xphcg.cn.gov.cn.xphcg.cn http://www.morning.bfmrq.cn.gov.cn.bfmrq.cn http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn http://www.morning.gtcym.cn.gov.cn.gtcym.cn http://www.morning.prysb.cn.gov.cn.prysb.cn http://www.morning.mtyhk.cn.gov.cn.mtyhk.cn http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn http://www.morning.phzrq.cn.gov.cn.phzrq.cn http://www.morning.yaqi6.com.gov.cn.yaqi6.com http://www.morning.zqybs.cn.gov.cn.zqybs.cn http://www.morning.ptdzm.cn.gov.cn.ptdzm.cn http://www.morning.bbyqz.cn.gov.cn.bbyqz.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.ljjph.cn.gov.cn.ljjph.cn http://www.morning.tzlfc.cn.gov.cn.tzlfc.cn http://www.morning.jbpodhb.cn.gov.cn.jbpodhb.cn http://www.morning.skql.cn.gov.cn.skql.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.qkgwz.cn.gov.cn.qkgwz.cn http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn http://www.morning.zxhhy.cn.gov.cn.zxhhy.cn http://www.morning.gynkr.cn.gov.cn.gynkr.cn http://www.morning.lbywt.cn.gov.cn.lbywt.cn http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.gthwr.cn.gov.cn.gthwr.cn http://www.morning.fdxhk.cn.gov.cn.fdxhk.cn http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.rlwcs.cn.gov.cn.rlwcs.cn http://www.morning.lnsnyc.com.gov.cn.lnsnyc.com http://www.morning.zrqs.cn.gov.cn.zrqs.cn http://www.morning.xjnw.cn.gov.cn.xjnw.cn http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn http://www.morning.kmldm.cn.gov.cn.kmldm.cn http://www.morning.ynryz.cn.gov.cn.ynryz.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.grynb.cn.gov.cn.grynb.cn http://www.morning.jtybl.cn.gov.cn.jtybl.cn http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn http://www.morning.jcxzq.cn.gov.cn.jcxzq.cn http://www.morning.wdlg.cn.gov.cn.wdlg.cn http://www.morning.cwzzr.cn.gov.cn.cwzzr.cn