我已经让BLE工作来配置和设置nano IoT,以及WIFI工作来将传感器数据发送到云数据库。
我在Arduino论坛上找到了一个可能的解决方案,它是https://forum.arduino.cc/t/coexistence-of-wifi-and-ble-in-arduino-nano-33-iot/676169
然而,我有一个内存泄漏问题:每次我切换回BLE时,它消耗大约500字节的内存。这意味着所有内存将在一个小时左右耗尽,并且Nano IoT崩溃

有没有人把这两个想法结合起来。Nano 33 IoT是否同时支持无线和BLE功能?
我知道BLE和Wifi不能在这块板上并行工作,但你能在这两者之间轻松而快速地切换吗?
发布于 2021-09-01 08:38:36
同时,我在ArduinoBLE库上找到了内存泄漏问题的解决方案:
该问题似乎来自以下文件:
.\libraries\ArduinoBLE\src\utility\GATT.cpp在void GATTClass::begin()中,一些对象是用new创建的。但是,它们不会在void GATTClass::end()中删除。
因此,该方法需要进行如下更新:
void GATTClass::end()
{
delete( _genericAccessService );
delete( _deviceNameCharacteristic );
delete( _appearanceCharacteristic );
delete( _genericAttributeService );
delete( _servicesChangedCharacteristic );
_attributes.clear();
}GitHub https://github.com/arduino-libraries/ArduinoBLE/issues/192上有一个未解决的问题
现在回到在BLE和WiFI之间切换的部分。下面是如何做的:
//Start Wifi
wiFiDrv.wifiDriverDeinit();
wiFiDrv.wifiDriverInit();
status = WiFi.begin(ssid, pass);
server.begin();
//...
// End Wifi
WiFi.end()
//...
//Start BLE
BLE.begin();
BLE.scan();
//...
// End BLE
BLE.stopAdvertise(); //don't think this is needed as I am reading other BLE devices
BLE.stopScan();
BLE.end();BLEservice和BLEcharacteristics是在代码的setup()部分完成的。
https://stackoverflow.com/questions/69003153
复制相似问题