Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何定义esp32可恢复扫描结果的回调_C_Arduino_Esp32 - Fatal编程技术网

C 如何定义esp32可恢复扫描结果的回调

C 如何定义esp32可恢复扫描结果的回调,c,arduino,esp32,C,Arduino,Esp32,开始BLE扫描的定义是: bool start(uint32_t duration, void (*scanCompleteCB)(BLEScanResults), bool is_continue = false); 第二个参数似乎是扫描完成时的回调,这是一个新的参数,我不知道如何定义它 fwiw我试过这个: void OnScanResults(BLEScanResults scanResults) { } 然后像这样使用它: scanResults = scan->start(6

开始BLE扫描的定义是:

bool start(uint32_t duration, void (*scanCompleteCB)(BLEScanResults), bool is_continue = false);
第二个参数似乎是扫描完成时的回调,这是一个新的参数,我不知道如何定义它

fwiw我试过这个:

void OnScanResults(BLEScanResults scanResults)
{ }
然后像这样使用它:

scanResults = scan->start(60, OnScanResults, true);
但对其他人来说,这显然是行不通的

请帮我签下那个签名

void (*scanCompleteCB)(BLEScanResults)

您需要在scanResults上添加&code>,因为:

void (*scanCompleteCB)(BLEScanResults)
是指向函数的指针,该函数采用
BLEScanResults
,不返回任何内容,称为
scanpletecb

所以你的电话应该是:

scanResults = scan->start(60, &OnScanResults, true);
正如指向
int
的指针指向
int

int pointedTo;
int* ptr = &pointedTo;

您的回调为空-因此不会发生任何事情。您是否尝试过插入
Serial.println(“扫描完成”)在回调中?当然希望在定义@Tarick Welling Fear not中没有代码会有更大的问题。由于brevityThe而为空函数指针不需要
&
。如果函数不是C++,那么这就是问题所在,有人来了,加上了C标记,我知道什么……好的,谢谢你们解开了这个谜团。此外,我忘了将实现返回类型更改为bool(非回调变量获取“scanResults”类型),这也是它没有编译的原因。我的错