蓝牙主机从机建立连接绑定过程

本文详细介绍了蓝牙主机从机连接建立的过程,包括初始化、设备扫描、连接建立、服务器发现及连接终止。在连接过程中,通过特定事件处理函数接收和解析设备信息,并使用UUID查找目标设备。一旦连接成功,即可对服务和特性值进行读写操作。
摘要由CSDN通过智能技术生成

蓝牙主机从机建立连接绑定过程

centersimplePeripheral建立连接过程

center首先进行osal_init_system()初始化各个任务,SimpleBLECentral_Init->osal_set_event( simpleBLETaskId,START_DEVICE_EVT );进入SimpleBLECentral_ProcessEvent()

调用

 VOIDGAPCentralRole_StartDevice( (gapCentralRoleCB_t *) &simpleBLERoleCB );//当初始化完成,会发送 GAP_DEVICE_INIT_DONE_EVENT由于注册了simpleBLERoleCB函数,因此发送的event由simpleBLERoleCB函数接收static void simpleBLECentralEventCB( gapCentralRoleEvent_t *pEvent )此时pEvent->gap.opcode=GAP_DEVICE_INIT_DONE_EVENT,相应信息存储于pEvent中

typedef union
{
  gapEventHdr_t             gap;                //!< GAP_MSG_EVENT andstatus.
  gapDeviceInitDoneEvent_t  initDone;           //!< GAP initialization done.
  gapDeviceInfoEvent_t      deviceInfo;         //!< Discovery device informationevent structure.
  gapDevDiscEvent_t         discCmpl;           //!< Discovery complete eventstructure.
  gapEstLinkReqEvent_t      linkCmpl;           //!< Link complete eventstructure.
  gapLinkUpdateEvent_t      linkUpdate;         //!< Link update event structure.
  gapTerminateLinkEvent_t   linkTerminate;      //!< Link terminated event structure.
}gapCentralRoleEvent_t;

联合体,只有deviceInfo里面的数据是正确的

typedef struct
{
  osal_event_hdr_t  hdr;              //!< GAP_MSG_EVENT and status
  uint8 opcode;                       //!< GAP_DEVICE_INIT_DONE_EVENT
  uint8 devAddr[B_ADDR_LEN];          //!< Device's BD_ADDR
  uint16 dataPktLen;                  //!<HC_LE_Data_Packet_Length
  uint8 numDataPkts;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值