是的,Arduino Portenta H7板可以通过蓝牙连接到Windows。下面是一个简单的代码示例,演示如何使用ArduinoBLE库将Portenta H7板连接到Windows计算机:
#include
BLEService ledService("19B10000-E8F2-537E-4F6C-D104768A1214"); // create a service
BLEByteCharacteristic switchChar("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEWrite); // create a characteristic
void setup() {
Serial.begin(9600);
// set the local name peripheral advertises
BLE.setLocalName("PortentaBLE");
// set the UUID for the service this peripheral advertises
BLE.setAdvertisedService(ledService);
// add the characteristic to the service
ledService.addCharacteristic(switchChar);
// allow remote device to change the characteristic
switchChar.setEventHandler(BLEWritten, characteristicWritten);
// start advertising
BLE.advertise();
}
void loop() {
// waiting for a BLE central
BLEDevice central = BLE.central();
// if a central is connected to the peripheral
if (central) {
Serial.println("Connected to central");
switchChar.writeValue(0); // set the LED off
while (central.connected()) { // while the central is still connected
if (switchChar.written()) { // if the remote device wrote to the characteristic
switchChar.writeValue(!switchChar.value()); // toggle the LED
}
}
Serial.println("Disconnected from central");
}
}
void characteristicWritten(BLEDevice central, BLECharacteristic characteristic) {
Serial.print("Characteristic event, written: ");
if (switchChar.value()) {
Serial.println("LED on");
} else {
Serial.println("LED off");
}
}
在这个示例中,我们创建了一个BLEService和一个BLEByteCharacteristic,分别用于描述Portenta H7板向连接到自己的蓝牙设备提供的服务和角色。在setup函数中,我们设置了本地名称和UUID以进行广告并发布这些服务/特性。在loop函数中,Portenta H7板会等待一个中央设备(如Windows计算机)连接到它,并逐步响应中央设备的写入操作(这里我们通过写入Portenta上的BLE特性开关LED来演示)。在characteristicWritten函数中,