当前位置: 首页 > news >正文

四川省建设工程信息网站wordpress手机端图片

四川省建设工程信息网站,wordpress手机端图片,免费外贸网站,上海网站设计优刻引言 我所计划的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.hkea.cn/news/14549918/

相关文章:

  • 响应式网站是做列表qq营销网站源码
  • 京东网站建设思维导图网站开发新闻管理系统的背景
  • 贸易型企业网站建设温州网站运营
  • 主机屋网站搭建设置餐饮品牌设计网站
  • 网站后台扫描插件wordpress 页面背景
  • 大兴网站定制开发wordpress 婚纱摄影
  • 可以做视频的一个网站太平洋电脑配置报价官网
  • 昆明优化网站排名wordpress上传文件按标题
  • 自贡网站seo做网站与不做网站的区别
  • 做网站衡水重庆建站模板平台
  • 鞍钢建设集团网站百度的seo排名怎么刷
  • 长沙seo网站排名优化网站开发验收模板
  • 中国最大的网站建设公司模拟电脑游戏的app
  • 常州公司网站建设长沙九度网络科技
  • 电商网站开发需要什么语言女孩子千万不要做房地产销售
  • dw建设网站的代码模板专业的网站建设设计价格
  • 用asp.net 做网站肇庆专业网站建设公司
  • 那个网站做的系统最好网站开发成本
  • 网站对应不同域名引擎搜索入口
  • 芜湖做网站哪家好广告策划书包括什么内容
  • 汕头网站建设报价wordpress 新增页面
  • ps切片工具做网站咸阳seo
  • 自己做网站发信息常见的网站结构类型
  • 衡阳城乡建设局网站wordpress SORA 主题
  • 曼朗策划网站建设昆明做网站报价
  • 北京做网站设计阿勒泰高端网站建设公司
  • 博客网站开发源代码网站赏析
  • 株洲做网站优化网页制作公司报价谈判方案
  • 网站文章添加软件网站开发实训报告
  • 深圳做营销网站设计建筑交流平台