可以使用Arduino Portenta H7的蓝牙模块与Windows设备进行连接。以下是一份示例代码,可以在Arduino IDE中运行。
首先,需要在Arduino IDE中安装BLE库。在Arduino IDE中,选择“Sketch” -> “Include Library” -> “Manage Libraries”,搜索“BLE”并安装该库。
接下来,可以使用以下代码将Arduino Portenta H7的蓝牙模块与Windows设备进行连接。
#include
BLEServer *pServer = NULL; BLECharacteristic *pCharacteristic = NULL; bool deviceConnected = false; float txValue = 0;
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" #define CHARACTERISTIC_UUID_TX "beb5483e-36e1-4688-b7f5-ea07361b26a8" #define CHARACTERISTIC_UUID_RX "beb5483e-36e1-4688-b7f5-ea07361b26a8"
class MyServerCallbacks : public BLEServerCallbacks { void onConnect(BLEServer* pServer) { deviceConnected = true; }
void onDisconnect(BLEServer* pServer)
{
deviceConnected = false;
}
};
void setup() { Serial.begin(9600);
// 创建BLEServer BLEDevice::init("PortentaBLE"); pServer = BLEDevice::createServer(); pServer->setCallbacks(new MyServerCallbacks());
// 创建BLE服务 BLEService *pService = pServer->createService(SERVICE_UUID);
// 创建BLE特征 pCharacteristic = pService->createCharacteristic( CHARACTERISTIC_UUID_TX, BLECharacteristic::PROPERTY_NOTIFY );
pCharacteristic->addDescriptor(new BLE2902());
BLECharacteristic *pCharacteristic = pService->createCharacteristic( CHARACTERISTIC_UUID_RX, BLECharacteristic::PROPERTY_WRITE );
pService->start();
// 启动BLE广播 BLEAdvertising *pAdvertising = BLEDevice::getAdvertising(); pAdvertising->addServiceUUID(pService->getUUID()); pAdvertising->setScanResponse(true); pAdvertising->setMinPreferred(0x06); // 最小间隔: 0.625ms pAdvertising->setMinPreferred(0x12); // 最大间隔: 1.25ms BLEDevice::startAdvertising(); }
void loop() { if (deviceConnected) { pCharacteristic->setValue((uint8_t*)&txValue, sizeof(tx