一、环境

  1. 添加rtl8720的库
    https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json
  2. 板子选择 BW16
    在这里插入图片描述
  3. 例子选择Wifi->ScanNetworksScanNetworks
    在这里插入图片描述

二、修改

源码位置:C:\Users\Administrator\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4

  1. :C:\Users\Administrator\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WiFi\src\WiFi.h
    class WiFiClass中增加CHANNEL成员

    int32_t CHANNEL(uint8_t networkItem);
    
  2. :C:\Users\Administrator\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WiFi\src\WiFi.cpp
    增加实现

    int32_t WiFiClass::CHANNEL(uint8_t networkItem)
    {
        return WiFiDrv::getCHANNELNetworks(networkItem);
    }
    
  3. :C:\Users\Administrator\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\cores\ambd\wifi_drv.h
    分别增加成员

    private:
       static int32_t _networkchannel[WL_NETWORKS_LIST_MAXNUM];
         
    public:
    	static int32_t getCHANNELNetworks(uint8_t networkItem);
    
  4. :C:\Users\Administrator\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\cores\ambd\wifi_drv.cpp
    加入下面3点修改

    头加声明
    int32_t    WiFiDrv::_networkchannel[WL_NETWORKS_LIST_MAXNUM] = {0};
    
    rtw_result_t WiFiDrv::wifidrv_scan_result_handler( rtw_scan_handler_result_t* malloced_scan_result )
    中,增加 _networkchannel[_networkCount] = record->channel; //将channel导入
    
    增加实现
    int32_t WiFiDrv::getCHANNELNetworks(uint8_t networkItem)
    {
        if (networkItem >= WL_NETWORKS_LIST_MAXNUM) {
            //return NULL;
            return 0;
        }
    
        return _networkchannel[networkItem];
    }
    
  5. :
    例子中增加

    Serial.print("\tChannel: ");
    Serial.print(WiFi.CHANNEL(thisNet));
    

三、效果

其中大于100的信道是5G信道
在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐