我不知道如何在SDK中实现WPS。SDK 附带了一个示例,但它似乎对我不起作用。它编译了,但什么也没发生。从 uart 输出中,我可以看到 wps 甚至没有启动。
我真的真的需要帮助。代码如下。有人可以解释一下key_init_single的作用以及为什么使用 GPIO 13 吗?我们是否需要以某种方式切换它才能使 WPS 开始工作?
#include "osapi.h"
#include "user_interface.h"
#include "driver/key.h"
#define WPS_KEY_NUM 1
#define WPS_KEY_IO_MUX PERIPHS_IO_MUX_MTCK_U
#define WPS_KEY_IO_NUM 13
#define WPS_KEY_IO_FUNC FUNC_GPIO13
LOCAL 结构keys_param键;
LOCAL 结构single_key_param *single_key;
LOCAL 无效ICACHE_FLASH_ATTR
user_wps_status_cb(int 状态)
{
switch (status) {
case WPS_CB_ST_SUCCESS:
wifi_wps_disable();
wifi_sta
tion_connect();
break;
case WPS_CB_ST_FAILED:
case WPS_CB_ST_TIMEOUT:
wifi_wps_start();
break;
}
}
LOCAL 无效ICACHE_FLASH_ATTR
user_wps_key_short_press(无效)
{
wifi_wps_disable();
wifi_wps_enable(WPS_TYPE_PBC);
wifi_set_wps_cb(user_wps_status_cb);
wifi_wps_start();
}
无效ICACHE_FLASH_ATTR
user_rf_pre_init(无效)
{
}
无效ICACHE_FLASH_ATTR
user_init(无效)
{
single_key = key_init_single(WPS_KEY_IO_NUM、WPS_KEY_IO_MUX、WPS_KEY_IO_FUNC、
NULL, user_wps_key_short_press);
keys.key_num = WPS_KEY_NUM;
keys.single_key = &single_key;
key_init(&keys);
wifi_set_opmode(STATION_MODE);
}