Здравствуйте.
Использую CubeMx32, Keil.
Модифицирую пример SampleService.
Есть два устройства на отладочной плате stm32f303ze и x-nucleo-idb05a1.
Первое - только сервер (периферия), второе - клиент (централ) и сервер (периферия).
Стек = 3 (пробовал и 4)
оба устройства успешно инициируются
aci_gap_init (GAP_PERIPHERAL_ROLE_IDB05A1 | GAP_CENTRAL_ROLE_IDB05A1).
После того, как вторая плата подключится к первой, на второй плате даю команду aci_gap_set_discoverable, а в ответ получаю ошибку с кодом 0x86 (BLE_STATUS_LENGTH_FAILED).
Вот описание ошибки из файла ble_def.h:
Программный код един для обеих плат. В первой плате отключен режим клиента, и она успешно выполняет эту же команду aci_gap_set_discoverable.
Пробовал работать с работать с этими же платами из программы BLUENRG GUI (отладочная плата STM32 - в режиме виртуального порта).
Там есть примеры на питоне.
Не стабильно, но удавалось запустить передачу Slave -> Master/Slave - > Master.
Там есть побайтный лог интерфейса SPI между программной и чипом BlueNRG-MS (частичный скриншот прикрепил к посту).
Сравнивал со своим - практически совпадают. Только там set_discovery возвращает 0x00.
Подскажите, пожалуйста, где я мог совершить ошибку.
Спасибо.