打印

VSFBoard + BCM43362A2模块

[复制链接]
1383|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 vsfopen 于 2018-9-4 17:35 编辑

目前测试使用SDIO接口,EWM1062模块(BCM43362A2芯片都可以,便宜的模块还有AP6181):

是不是做成扩展板更好,类似这样:


硬件接口如下:

SDIO使用PB0-PB5的SDIO0
RST接PB10
WAKEUP接PB8
MODE接PB9

使用vsfaio工程里的wifi,修改inclue路径最后一个为usrapp/wifi
CDC串口输出:


代码:
static vsf_err_t usrapp_thread(struct vsfsm_pt_t *pt, vsfsm_evt_t evt)
{
        struct usrapp_t *app = (struct usrapp_t *)pt->user_data;
        struct vsfsm_pt_t *caller_pt = &app->caller_pt;
        struct bcm_wifi_t *wifi = &app->net.wifi;
        struct vsfip_netif_t *netif = &wifi->netif;
        vsf_err_t err;

        vsfsm_pt_begin(pt);

        bcm_wifi_netif_init(wifi);
        caller_pt->sm = pt->sm;
        caller_pt->state = 0;
        vsfsm_pt_entry(pt);
        err = vsfip_netif_add(caller_pt, evt, netif);
        if (err) return err;

        vsfdbg_printf("wifi: f1sig = 0x%08X MAC(%d) = %02X:%02X:%02X:%02X:%02X:%02X"
                        VSFCFG_DEBUG_LINEEND, wifi->bus.f1sig, netif->macaddr.size,
                        netif->macaddr.addr.s_addr_buf[0], netif->macaddr.addr.s_addr_buf[1],
                        netif->macaddr.addr.s_addr_buf[2], netif->macaddr.addr.s_addr_buf[3],
                        netif->macaddr.addr.s_addr_buf[4], netif->macaddr.addr.s_addr_buf[5]);

        bcm_sdpcm_get_iovar_buffer(&app->net.cmd_buffer, 256, BCMIOVAR_VER);
        if (NULL == app->net.cmd_buffer) return VSFERR_FAIL;
        caller_pt->user_data = wifi;
        caller_pt->state = 0;
        vsfsm_pt_entry(pt);
        err = bcm_sdpcm_ioctrl(caller_pt, evt, BCM_INTERFACE_STA,
                        BCM_SDPCM_CMDTYPE_GET, BCMIOCTRL_GET_VAR, app->net.cmd_buffer,
                        &app->net.reply_buffer);
        if (err > 0) return err;
        else if (err < 0)
        {
                vsfdbg_prints("Fail to read version." VSFSHELL_LINEEND);
                vsfip_buffer_release(app->net.cmd_buffer);
                return err;
        }
        vsfip_buffer_release(app->net.cmd_buffer);
        if (app->net.reply_buffer != NULL)
        {
                if (app->net.reply_buffer->buf.size > 0)
                        vsfdbg_printf("wifi: %s", app->net.reply_buffer->buf.buffer);
                vsfip_buffer_release(app->net.reply_buffer);
        }

#if 1
        caller_pt->state = 0;
        vsfsm_pt_entry(pt);
        err = bcm_wifi_scan(caller_pt, evt, &app->net.reply_buffer, BCM_INTERFACE_STA);
        if (err < 0) return err;
        else if (app->net.reply_buffer != NULL)
        {
                struct bcm_wifi_escan_result_t *scan_result =
                                (struct bcm_wifi_escan_result_t *)app->net.reply_buffer->buf.buffer;

                for (uint16_t i = 0; i < scan_result->bss_count; i++)
                {
                        vsfdbg_printf("wifi_scan: %02X:%02X:%02X:%02X:%02X:%02X %s" VSFCFG_DEBUG_LINEEND,
                                scan_result->bss_info[i].bssid[0], scan_result->bss_info[i].bssid[1],
                                scan_result->bss_info[i].bssid[2], scan_result->bss_info[i].bssid[3],
                                scan_result->bss_info[i].bssid[4], scan_result->bss_info[i].bssid[5],
                                scan_result->bss_info[i].ssid);
                }
                vsfip_buffer_release(app->net.reply_buffer);
        }
        if (err != 0) return err;
#else
        caller_pt->state = 0;
        vsfsm_pt_entry(pt);
        err = app->net.key != NULL ?
                bcm_wifi_join(caller_pt, evt, NULL, app->net.ssid,
                                BCM_AUTHTYPE_WPA2_AES_PSK, (const uint8_t *)app->net.key, strlen(app->net.key)) :
                bcm_wifi_join(caller_pt, evt, NULL, app->net.ssid, BCM_AUTHTYPE_OPEN, NULL, 0);
        if (err) return err;
        usrapp_net_on_connect(&app->net.wifi_net, bcm_wifi_get_netif(&app->net.wifi));
#endif

        vsfsm_pt_end(pt);
        return VSFERR_NONE;
}



使用特权

评论回复

相关帖子

沙发
huahua12333| | 2020-2-22 19:57 | 只看该作者
K了我一个月的站,刚才site的时候

使用特权

评论回复
发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

325

帖子

8

粉丝