启动BLE扫描的定义是:

bool start(uint32_t duration, void (*scanCompleteCB)(BLEScanResults), bool is_continue = false);

第二个参数似乎是扫描完成时的回调,对于这个Im来说有些陌生,不确定如何定义它。
我试过了:
void OnScanResults(BLEScanResults scanResults)
{ }

像这样使用:
scanResults = scan->start(60, OnScanResults, true);

但对其他人来说,这显然行不通。
请帮我签名
void (*scanCompleteCB)(BLEScanResults)

最佳答案

您需要添加到OnScanResults中,因为:

void (*scanCompleteCB)(BLEScanResults)

是指向函数的指针,该函数接受一个BLEScanResults,不返回任何内容,称为scanCompleteCB
所以你的电话应该是:
scanResults = scan->start(60, &OnScanResults, true);

正如指向aint的指针指向aint的地址一样
int pointedTo;
int* ptr = &pointedTo;

09-25 17:28