Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: NRF52 BLE Custom Service
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Роман
Всем добрый день!
Мало помалу осваиваю NRF51/52 пытаюсь разобраться по примерам как работать с блутуз стеком от нордика. стадию написания блютуз меток, устройств типа BLE Observer ну и по примерам тестирование различных готовых сервисов прошел.
основные же трудности у меня в меру небольшого ума и знания языка встали при попытке реализовать свой сервис и обмениваться с программкой на андройде данными. Со стороны андройда все просто и работает.
Со стороны мк у меня долго ничего не получалось, пока не наткнулся на Bluetooth dev. studio (BDS) и с горем пополам, опираясь на скудный мануал смог запустить свой сервис.
В итоге могу со стороны мк получать данные из значения value моей characteristic при записи в нее с телефона, но записать со стороны МК не получается....не вижу на телефоне чтобы чтото полученно было.

Параллельно задавал данный вопрос по этому поводу (на своем корявом англ.) в теме на nordic dev zone тут!
Там же выложил проект в кейле и файлы, сгенерированные BDS.


Функция для записи данных делалась на основе примера с того же Nordic Dev Zone.

Код
uint32_t ble_my_service_value_update(ble_myprofile_t * p_myprofile, uint8_t data)
{
uint32_t err_code = NRF_SUCCESS;

ble_myprofile_evt_t ble_myprofile_evt;
ble_gatts_value_t gatts_value;
ble_myprofile_t ble_myprofile;
ble_myprofile_mycharacteristic_t * p_mycharacteristic;

memset(&gatts_value, 0, sizeof(gatts_value));
gatts_value.len = sizeof(uint8_t);
gatts_value.offset = 0;
gatts_value.p_value = &data;
err_code = sd_ble_gatts_value_set(p_myprofile->conn_handle,
p_myprofile->mycharacteristic_handles.value_handle,
&gatts_value);

if (p_myprofile->conn_handle != BLE_CONN_HANDLE_INVALID)
{
ble_gatts_hvx_params_t hvx_params;
// Initialize value struct.
memset(&hvx_params, 0, sizeof(hvx_params));

hvx_params.handle = p_myprofile->mycharacteristic_handles.value_handle;
hvx_params.type = BLE_GATT_HVX_NOTIFICATION;
hvx_params.offset = gatts_value.offset;
hvx_params.p_len = &gatts_value.len;
hvx_params.p_data = gatts_value.p_value;
err_code = sd_ble_gatts_hvx(p_myprofile->conn_handle, &hvx_params);
}
return err_code;
}



Возможно не правильно произвожу обновление значения в характеристике, либо что то накосячил при настройке BDS
Знатоки NRF5 и BDS прошу совета....
Alechek
Разделом не ошиблись? bb-offtopic.gif BLE - это больше относится к Форумы по интерфейсам

Вы вообще Bluetooth Core Specification version 4.0 пользовали? salmari.gif
Что значит
Цитата
но записать со стороны МК не получается....не вижу на телефоне чтобы чтото полученно было.

особенно, когда
Цитата
устройств типа BLE Observer

? wacko.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.