一、环境
- 添加rtl8720的库
https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json - 板子选择
BW16
- 例子选择
Wifi->ScanNetworks
ScanNetworks
二、修改
源码位置:C:\Users\Administrator\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4
-
:
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);
-
:
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); }
-
:
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);
-
:
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]; }
-
:
例子中增加Serial.print("\tChannel: "); Serial.print(WiFi.CHANNEL(thisNet));
三、效果
其中大于100的信道是5G信道