Перейти к содержанию
    

интересно кто нибудь работал с этим модулем?

как то непонятно он себя ведет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

интересно кто нибудь работал с этим модулем?

как то непонятно он себя ведет.

Я знаю чип BlueNRG производства ST. А что за модуль, кто производит? Ссылочкой не побалуете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я знаю чип BlueNRG производства ST. А что за модуль, кто производит? Ссылочкой не побалуете?

да, это он.

http://www.st.com/web/catalog/sense_power/...&sc=bluenrg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, для вас нет разницы, микросхема или модуль. Может, как раз в этом и есть причина, что "он как то непонятно он себя ведет".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, для вас нет разницы, микросхема или модуль. Может, как раз в этом и есть причина, что "он как то непонятно он себя ведет".

у меня борд X-NUCLEO-IDB04A1

тестирую

unsigned char header_master[HEADER_SIZE] = {SPI_READ, 0x00, 0x00, 0x00, 0x00};
unsigned char header_slave[HEADER_SIZE]  = {0x00, 0x00, 0x00, 0x00, 0x00};

BluetoothCS_Low();
SPI_BLUENRG_TransmitReceive(header_master,header_slave,5,100);
BluetoothCS_High();

возвращает 0x02, 0x00, 0x00, 0x00, 0x00. 0x02 - это хорошо - SPI Ready. но другие байты это write,read buffer size -они по нулям а должны быть не нулевые, чтоб можно было читать/писать в модуль

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

интересно кто нибудь работал с этим модулем?

как то непонятно он себя ведет.

 

Рекомендую начать с документа AN4494 "Bringing up the BlueNRG and BlueNRG-MS devices". Прямо по пунктам. У меня получилось.

 

Правда, именно "работать" - делать и использовать свои профили руки пока не дошли... Но примеры ST'шные после небольшой доработки напильником (HAL выкинул к чёрту, использовал свой драйвер SPI) работают нормально. Написаны они, кстати, весьма прилично, без миллиона слоёв абстракций. Сразу видно, другие люди делали :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендую начать с документа AN4494 "Bringing up the BlueNRG and BlueNRG-MS devices". Прямо по пунктам. У меня получилось.

 

Правда, именно "работать" - делать и использовать свои профили руки пока не дошли... Но примеры ST'шные после небольшой доработки напильником (HAL выкинул к чёрту, использовал свой драйвер SPI) работают нормально. Написаны они, кстати, весьма прилично, без миллиона слоёв абстракций. Сразу видно, другие люди делали :-)

я честно говоря не очень понимаю работу с Bluetooth.

Я хочу чтоб прибор проснулся, послал данные, если кто то есть поблизости он может подключиться к прибору ,потом прибор идет спать.

Возникает много вопросов.

Какую роль назначить прибору – CLIENT? SERVER?

После того как установил режим advertising нужно ли добавлять service?

И вообще как это все должно быть сконфигурировано?

С инициализацией я разобрался.

void BLUENRG_Setup(void)
{
       HCI_Init();
    BlueNRG_RST();

       if(BLE_Role == CLIENT)
    {
        Osal_MemCpy(bdaddr, CLIENT_BDADDR, sizeof(CLIENT_BDADDR));
    }
    else
    {
        Osal_MemCpy(bdaddr, SERVER_BDADDR, sizeof(SERVER_BDADDR));
    }

      /* Configure BlueNRG address as public (its public address is used) - MAC         address of the device */
    ret = aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET,      CONFIG_DATA_PUBADDR_LEN, bdaddr);

      /* Init BlueNRG GATT layer */
    ret = aci_gatt_init();

       /* Init BlueNRG GAP layer as peripheral or central */
     if(BLE_Role == SERVER)
     {
        ret = aci_gap_init(GAP_PERIPHERAL_ROLE, &service_handle, &dev_name_char_handle, &appearance_char_handle);
     }
     else
     {
        ret = aci_gap_init(GAP_CENTRAL_ROLE, &service_handle, &dev_name_char_handle, &appearance_char_handle);
     }

      // Set output power level
    ret = aci_hal_set_tx_power_level(1,4);
}

Потом (предположительно) настраиваем advertising

ret = aci_gap_set_discoverable(ADV_IND, 0, 0, PUBLIC_ADDR, NO_WHITE_LIST_USE, sizeof(local_name), local_name, 0, NULL, 0, 0);

А дальше полный туман.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...