发帖
0 0 0

[BW20]二次开发学习6 AP模式WIFI设置

夜雨喧嚣
高级会员

14

主题

10

回帖

627

积分

高级会员

积分
627
BW系列 11 0 昨天 22:04
[i=s] 本帖最后由 夜雨喧嚣 于 2025-5-25 22:11 编辑 [/i]

我这边还有几个问题,如果有知道的大佬希望可以解答一下

1、如何设置AP自动选择频段或者自动跳频?
我这边没太仔细去看API,不太清楚光靠自带API能不能实现这个功能,因为目前我这边用不到
后续我如果用到了应该会去研究,之前做过lora,对这一块还是有些想法的
当然如果有大佬解答就更好了
2、感觉还有几个问题来着的,但是我忘记了,wifi是三四天前调的了,晚点我想起来再补充吧

1、驱动函数熟悉

驱动函数位置

ameba-rtos-release-v1.1\component\wifi\api\wifi_api.h
ameba-rtos-release-v1.1\component\wifi\whc\whc_host_rtos\whc_host_api_basic.c

具体内容可以自行下载SDK查看

1.1、连接wifi

.h文件中第170行起

.c文件中第267行起

s32 wifi_start_ap(struct rtw_softap_info *softap_config);

无需做其他初始化,因为在main函数中已经进行了初始化

image.png

2、userWiFi.c,.h创建

.c代码如下


#include "userWiFi.h"
static u8 wifi_password[10] = "12345678";
static struct rtw_softap_info AP_cfg;

void userWiFiInit(void * pvParameters)
{
    (void)pvParameters;
    int ret = 0;
    //rtos_time_delay_ms(5000); //若运行后出现死机的情况,请取消该注释优先等待wifi初始化完成
    memcpy(&AP_cfg.ssid.val,"5GTest",6);
    AP_cfg.ssid.len = 6;
    AP_cfg.hidden_ssid = 0;
    AP_cfg.security_type = RTW_SECURITY_WPA2_AES_PSK;
    AP_cfg.password = wifi_password;
    AP_cfg.password_len = 8;
    AP_cfg.channel = 149;  //我目前只知道通过这个频段来设置是2.4G还是5G,请自行查询可用频段
    wifi_start_ap(&AP_cfg); //开启AP
  
    //while(1)  //注释原因是我记得AP模式杀死不会出问题,可以自行测试
    //{
    //    rtos_time_delay_ms(500);
    //}
    rtos_task_delete(NULL);
}

.h代码如下


#ifndef _USERWIFI_H_
#define _USERWIFI_H_

#include "wifi_api.h"

void userWiFiInit(void * pvParameters);
#endif

3、主函数实现

3.1、初始化任务

image.png

烧录固件后重新上电,电脑打开wifi,可以正常搜索到对应wifi,且频段设置对后wifi工作在对应频段,连接后手动修改ip至192.168.43频段,wifi默认ip为192.168.43.1(应该是),AP默认不带有dhcp功能,我这边就不赘述如何调用DHCP API了。

修改后测试可以正常ping通wifi模组,且wifi模组无论是2.4G还是5G均正常工作。

后续我应该不会发布BW20的学习帖子了,因为我需要的基础应用都已经学习完成了,其他的比如LWIP的各种使用,还有比如HTTP,DHCP这些非底层的我就不写了。

──── 0人觉得很赞 ────

使用道具 举报

您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28811 个
  • 话题数: 41182 篇