情况介绍:
在使用Albert III的PS4Controller库时,笔者遇到有个很头疼的问题,前前后后查了两天资料才解决,所以把解决办法记录一下,希望可以帮助需要相同问题的人。
笔者使用的是ESP32的开发板,在第一次运行PS4Controller的示例程序时,的确成功连接上了PS4手柄。但在断开连接后,就再也无法成功配对了,即使笔者重新下载一次程序也无济于事。想来想去也找不到问题所在,本来想回头使用PS2的手柄,但是嫌PS2手柄颜值过低且需要一个又大又笨的接收器。最后还是硬着头皮去找解决办法,还好功夫不负有心人,最终解决了。
库下载:https://github.com/aed3/PS4-esp32
问题解决:
在PS4手柄的示例程序的setup中,添加14~20行的程序即可解决。
#include <Arduino.h>
#include <PS4Controller.h>
#include "esp_bt_main.h"
#include "esp_bt_device.h"
#include "esp_gap_bt_api.h"
#include "esp_err.h"
void setup()
{
Serial.begin(115200);
PS4.begin("ba:ba:ca:ea:02:01");
uint8_t pairedDeviceBtAddr[20][6];
int count = esp_bt_gap_get_bond_device_num();
esp_bt_gap_get_bond_device_list(&count, pairedDeviceBtAddr);
for (int i = 0; i < count; i++)
{
esp_bt_gap_remove_bond_device(pairedDeviceBtAddr[i]);
}
Serial.println("Ready.");
}