我正在编写一个C#应用程序来连接和读取Adafruit Feather板上的数据。
我设法在Windows 10上使用UWP API成功连接到主板。 但是,在尝试阅读Adafruit董事会提供的UART服务时,我遇到了错误。
错误如下:
发生在代码中的这一行:
这是我正在使用的代码。抱歉,如果它仍然有点乱 - 我会在它工作后清理它。
Guid uart_uid = new Guid("6E400001-B5A3-F393-E0A9-E50E24DCCA9E");
Guid uart_read_uid = new Guid("6E400003-B5A3-F393-E0A9-E50E24DCCA9E");
if (eventArgs.BluetoothAddress == 221661906381440)
{
Console.WriteLine(String.Format("Advertisement:"));
Console.WriteLine(String.Format(" BT_ADDR: {0}", eventArgs.BluetoothAddress));
Console.WriteLine(String.Format(" FR_NAME: {0}", eventArgs.Advertisement.LocalName));
Console.WriteLine();
Console.WriteLine("Sensor found. Initiating connection...");
Console.WriteLine();
BluetoothLEDevice device = await BluetoothLEDevice.FromBluetoothAddressAsync(221661906381440);
GattDeviceService gatt_uart = device.GetGattService(uart_uid);
IReadOnlyList<GattCharacteristic> read = gatt_uart.GetCharacteristics(uart_read_uid);
GattReadResult result = await read.First().ReadValueAsync(BluetoothCacheMode.Uncached);
Console.WriteLine("{0}", result.Value);
}
错误是由于我的C#代码造成的,还是因为我从主板上发送的数据格式?
这是我用来写的Adafruit代码:
if(recording){
ble.print("AT+BLEUARTTX=");
ble.print("Color Temp: "); ble.print(colorTemp, DEC); ble.print(" K.");
ble.println("\n");
if (! ble.waitForOK() ) {
Serial.println(F("Failed to send?"));
}
编辑1:
编辑2:
这些是我分别用于C#和Adafruit板的库。
using System;
using System.Collections.Generic;
using System.Linq;
using Windows.Devices.Bluetooth.Advertisement;
using Windows.Devices.Bluetooth;
using Windows.Devices.Bluetooth.GenericAttributeProfile;
#include <Wire.h>
#include <Arduino.h>
#include <SPI.h>
#include "Adafruit_BLE.h"
#include "Adafruit_BluefruitLE_SPI.h"
#include "Adafruit_BluefruitLE_UART.h"
#include "Adafruit_TCS34725.h"
#include "BluefruitConfig.h"
感谢任何帮助, 谢谢