0
我想編寫一個程序,該程序每隔10ms通過藍牙低功耗接收數據。Windows上的藍牙低功耗堆棧溢出
我有很多工作要做,但我總是遇到一個問題,找不到源代碼。 這裏是我的代碼寫在C++ Builder中10在Windows 10
> //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#define Characteristic_UUID "{6e400003-b5a3-f393-e0a9-e50e24dcca9e}"
#define Service_UUID "{6e400001-b5a3-f393-e0a9-e50e24dcca9e}"
#pragma resource "*.dfm"
TForm1 *Form1;
TBluetoothLEDevice* device;
TBluetoothGattCharacteristicList* characteristic ;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
BluetoothLE1->DiscoverDevices(100);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BluetoothLE1EndDiscoverDevices(TObject * const Sender, TBluetoothLEDeviceList * const ADeviceList)
{
device = ADeviceList->First();
BluetoothLE1->DiscoverServices(device);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BluetoothLE1ServicesDiscovered(TObject * const Sender, TBluetoothGattServiceList * const AServiceList)
{
GUID AGuid;
CLSIDFromString(TEXT(Service_UUID), &AGuid);
TBluetoothGattService* service = BluetoothLE1->GetService(device,AGuid);
//TBluetoothGattServiceList* abcd = BluetoothLE1->GetServices(device);
CLSIDFromString(TEXT(Characteristic_UUID), &AGuid);
characteristic = BluetoothLE1->GetCharacteristics(service);
while(characteristic->First()->UUID != AGuid)
{
characteristic->Delete(0);
}
if(characteristic->First()!= NULL);
BluetoothLE1->SubscribeToCharacteristic(device,characteristic->First());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BluetoothLE1CharacteristicRead(TObject * const Sender, TBluetoothGattCharacteristic * const ACharacteristic,
TBluetoothGattStatus AGattStatus)
{
static long i;
Label1->Caption = i;
i++;
}
//---------------------------------------------------------------------------
究竟86303分配時通知(呼叫BluetoothLE1CharacteristicRead)後的基礎上,我得到一個堆棧溢出。所以一定有什麼錯。 在開始時,我使用Windows Drivers Functions在C++中用Visual Studio編寫了程序,但是同樣的事情。
寫入「堆棧溢出」以區別於StackOverflow。該網站是其他的東西:) – i486
你檢查了實際的堆棧?這通常是堆棧溢出的原因。通常情況下,您有一個模式ABCABCABCABCAB,其中一些可能不是您的功能。一個常見的原因是從回調調用庫函數,以便庫再次調用您的回調... – MSalters
好吧,我現在幾乎整個堆棧都充滿了這些12Bytes 0x014F3200 - > .O2。 0x005FFF64 - > .__d 0x00000000 - > .... 但我怎麼知道這是什麼。 – KingKarl237