1 结论先行
- 模组初始化系统和RF驱动后电流在
24mA左右 - 在扫描时电流最高
40mA
2 测试数据
2.1 EMC3029-样本1
2.2 EMC3029-样本2
3 模组固件
WiFi模组上电后,每3s启动一次扫描,扫描完成后打印结果
3.1 固件
文件名: demos.wifi.scan@emc3020.all.bin文件大小: 2064400 字节MD5: 46CA9F9ACB1F06B7777DDC3259E4F6B0SHA1: 978B43273C3B3C05353ABFD5033EE453CF1DA70BCRC32: A025CB5C文件名: demos.wifi.scan@emc3020.ota.bin文件大小: 328360 字节MD5: 922C60882468968B640DC74D29B84634SHA1: 4676ACAB4D3835C3C68218C220A4A2ACF86E73BDCRC32: 833488A0
3.2 源代码
3.2.1 代码说明
基于mxos-demos中的wifi.scan和os两个部分改编而成mxos是在cube分支,commit号为fea46a888a9a77c676076080823993e42f165159
3.2.2 应用层代码
#include "mxos.h"#define app_log(M, ...) MXOS_LOG(CONFIG_APP_DEBUG, "APP", M, ##__VA_ARGS__)static void wifi_scan_notify(int num, mwifi_ap_info_t *ap_list);static mos_semphr_id_t sem;#define SEM_COUNT 10static void semrx_thread(void *arg){int fd;fd_set rd;int ret;fd = mos_event_fd_new(sem);app_log("event fd: %d", fd);while (1){FD_ZERO(&rd);FD_SET(fd, &rd);select(fd + 1, &rd, NULL, NULL, NULL);if (FD_ISSET(fd, &rd)){ret = mos_semphr_acquire(sem, 1);mos_sleep(3);app_log("RX sem ret %d", ret);mwifi_scan(NULL);}else{app_log("RX sem timeout");break;}mos_msleep(100);}mos_event_fd_delete(fd);app_log("semrx_thread exit");mos_thread_delete(NULL);}int main(void){/* Initialize network(Wi-Fi, TCP/IP) */mxos_network_init();/* Register Wi-Fi scan notification */mxos_system_notify_register(mxos_notify_WIFI_SCAN_COMPLETED, wifi_scan_notify, NULL);sem = mos_semphr_new(SEM_COUNT);mos_thread_new(5, "rx", semrx_thread, 0x500, NULL);app_log("Start scan, please wait...");mwifi_scan(NULL);return 0;}static void wifi_scan_notify(int num, mwifi_ap_info_t *ap_list){int i = 0;app_log("AP number: %d", num);for (i = 0; i < num; i++){app_log("AP%d: SSID=%s, RSSI=%ddBm", i, ap_list[i].ssid, ap_list[i].rssi);}mos_semphr_release(sem);}

