930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 17345|回复: 1

52840读取UUID的用户描述

[复制链接]

8

主题

13

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2021-5-24 17:14:09 | 显示全部楼层 |阅读模式
hi请教一个问题

是这样的 手上有一个蓝牙设备作为从机
通过手机APP  NRF_CONNECT可以连接到这个设备
如下图


当点击下箭头的时候 可以显示出来 用户描述

现在52840作为主机 可以连接 可以用nus服务和这个蓝牙设备通讯
我想问问 如何编程 读出这个Value




我阅读代码 找到一个接口
uint32_t ble_nus_c_tx_notif_enable(ble_nus_c_t * p_ble_nus_c)
sd_ble_gattc_write(conn_handle, &write_params);
这是去写CCCD 我猜想这里是--写 那么我应该是调用--读 也就是sd_ble_gattc_read
实际测试不行 会死机 我的代码如下
  1. void ble_nus_c_on_db_disc_evt(ble_nus_c_t * p_ble_nus_c, ble_db_discovery_evt_t * p_evt)
  2. {
  3.     ble_nus_c_evt_t nus_c_evt;
  4.     memset(&nus_c_evt,0,sizeof(ble_nus_c_evt_t));

  5.     ble_gatt_db_char_t * p_chars = p_evt->params.discovered_db.charateristics;

  6.     NRF_LOG_INFO("[KOSON]  uuid=%4x type=%4x ",p_evt->params.discovered_db.srv_uuid.uuid,p_evt->params.discovered_db.srv_uuid.type);
  7.     // Check if the NUS was discovered.
  8.     if (    (p_evt->evt_type == BLE_DB_DISCOVERY_COMPLETE)
  9.         &&  (p_evt->params.discovered_db.srv_uuid.uuid == BLE_UUID_NUS_SERVICE)
  10.         &&  (p_evt->params.discovered_db.srv_uuid.type == p_ble_nus_c->uuid_type))
  11.     {
  12.         for (uint32_t i = 0; i < p_evt->params.discovered_db.char_count; i++)
  13.         {
  14.             NRF_LOG_INFO("[KOSON]i=%4x p_chars[i].characteristic.uuid.uuid=%4x",i,p_chars[i].characteristic.uuid.uuid);
  15.             switch (p_chars[i].characteristic.uuid.uuid)
  16.             {
  17.                 case BLE_UUID_NUS_RX_CHARACTERISTIC:
  18.                     nus_c_evt.handles.nus_rx_handle = p_chars[i].characteristic.handle_value;
  19.                     break;

  20.                 case BLE_UUID_NUS_TX_CHARACTERISTIC:
  21.                     nus_c_evt.handles.nus_tx_handle = p_chars[i].characteristic.handle_value;
  22.                     nus_c_evt.handles.nus_tx_cccd_handle = p_chars[i].cccd_handle;  
  23.                     
  24.                     NRF_LOG_INFO("[KOSON read]%4x---%4x --%04x ",p_ble_nus_c->conn_handle,p_chars[i].user_desc_handle,sd_ble_gattc_read(p_ble_nus_c->conn_handle,p_chars[i].user_desc_handle, 0));
  25.                     break;
  26.                 default:
  27.                     break;
  28.             }
  29.      }
  30.         if (p_ble_nus_c->evt_handler != NULL)
  31.         {
  32.             nus_c_evt.conn_handle = p_evt->conn_handle;
  33.             nus_c_evt.evt_type    = BLE_NUS_C_EVT_DISCOVERY_COMPLETE;
  34.             p_ble_nus_c->evt_handler(p_ble_nus_c, &nus_c_evt);
  35.         }
  36.     }
  37. }
复制代码
log
0> <info> ble_nus_c: [KOSON]i=   0 p_chars.characteristic.uuid.uuid=   2
0> <info> ble_nus_c: [KOSON]i=   1 p_chars.characteristic.uuid.uuid=   3
0> <info> ble_nus_c: [KOSON read]   0---  10 --0000
0> <info> ble_nus_c: [KOSON]i=   2 p_chars.characteristic.uuid.uuid=   4
0> <info> app: [BLE] Discovery complete.



请老师指导一下 谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

8

主题

13

帖子

87

积分

注册会员

Rank: 2

积分
87
 楼主| 发表于 2021-6-8 16:09:18 | 显示全部楼层
自己解决了 需要拿到那个用户描述句柄去读 才可以
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

GMT+8, 2024-11-21 20:06 , Processed in 0.077531 second(s), 22 queries .

快速回复 返回顶部 返回列表