我想通過UWP應用程序找到找到並通過藍牙連接Arduino的方法,因此我找到了兩種方法(找不到任何官方的MS文檔) 所以一個方法是Windows 10 UWP與Arduino的藍牙連接
DeviceInformationCollection availableDevices = await BluetoothSerial.listAvailableDevicesAsync();
foreach (DeviceInformation device in availableDevices)
{
deviceList.Add(device);
}
這將返回名爲「開發B」藍牙設備,它實際上是我的Arduino的藍牙模塊。即使有其他設備可用配對/不配對,此方法始終只返回「Dev B」。
然後我用這個功能來與Arduino的
var selectedDevice = (DeviceInformation)DeviceListView.SelectedItem;
uint BaudRate = 9600;
var connection = new BluetoothSerial(selectedDevice.Name);
arduino = new RemoteDevice(connection);
connection.begin(BaudRate, SerialConfig.SERIAL_8N1);
connection.ConnectionEstablished += OnConnectionEstablished;
ConnectedDeviceTextBox.Text = "Connected with Arduino.";
連接它奇妙的作品,並得到連接。一切是好到現在
,是因爲我需要找到可我發現下面的方法
var selector = BluetoothDevice.GetDeviceSelectorFromPairingState(true);
var devices = await DeviceInformation.FindAllAsync(selector);
foreach (DeviceInformation device in devices)
{
deviceList.Add(device);
}
這給了我所有配對的藍牙設備,但是藍牙模塊的名稱現在是HC的所有藍牙設備-05(這實際上是Windows在藍牙設置和其他地方顯示的名稱)。但是,如果我將此設備信息傳遞給上面的Connection代碼,則它不會連接。我試着在
var connection = new BluetoothSerial(selectedDevice.Name);
使用設備名稱,但它不工作,我也試過路過的設備本身
var connection = new BluetoothSerial(selectedDevice);
仍然沒有運氣。
有人可以請解釋名稱的差異,爲什麼它不與第二種方法連接。提前致謝。
謝謝你Rita, 瞭解Rfcomm和BluetoothDevice類之間的區別。 至於名稱,我嘗試更改HC-05藍牙模塊的名稱,除了我的應用程序以外,它的更新位置仍然以第一種方法顯示Dev B。如果我找到了某些東西,我會繼續研究並更新線程。 –