微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 如何把Peripheral回应状态改成回应事件?

如何把Peripheral回应状态改成回应事件?

时间:10-02 整理:3721RD 点击:

想同时实现Peripheral和Central,但peripheral callback的是状态,central callback的是事件,看了一下peripheral.c,里面GAP ROLE的状态判定比事件要细。

而在peripheral.c里面,涉及到GAP ROLE状态的事件有

GAP_DEVICE_INIT_DONE_EVENT,GAP_ADV_DATA_UPDATE_DONE_EVENT,GAP_MAKE_DISCOVERABLE_DONE_EVENT,
GAP_END_DISCOVERABLE_DONE_EVENT,GAP_LINK_ESTABLISHED_EVENT,GAP_LINK_TERMINATED_EVENT 共6个事件。

那么是不是意味我在应用的处理角色事件的函数里面也要涉及这6个事件?

如果Peripheral进入相应的事件,是不是证明GAP ROLE已经进入相应的状态,比如进入GAP_LINK_ESTABLISHED_EVENT事件就说明进入了GAPROLE_CONNECTED的状态?还是我依然要在事件里面做进一步判断?

我有试过全部添加6个事件,事件里面内容只有LED闪烁,但.在处理角色事件时只进入GAP_ADV_DATA_UPDATE_DONE_EVENT,而且用手机BLE DeviceMonitor也搜不到信号,不太明白具体怎么回事?求大神指点,感谢。

Even,

是的,如果进入GAP_LINK_ESTABLISHED_EVENT,那么相应的gaprole的状态就会被设置成GAPROLE_CONNECTED。

只有GAP_ADV_DATA_UPDATE_DONE_EVENT且搜索不到设备,那是因为你的设备还没进入广播状态。

在init函数里面,确认一下  uint8_t initialAdvertEnable = TRUE; 是否有。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top