微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2564+MSP430,GAP_Event_Callback回调函数

CC2564+MSP430,GAP_Event_Callback回调函数

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

Hi all,

【我使用的工具】板子:CC2564+MSP430;      协议栈:CC256x MSP430 Bluetopia SDK v1.5 R2

【实验现象】目标是想要实现Inquiry后得到蓝牙设备的RSSI值。

我在GAP_Event_Callback回调函数中添加了:

 case etInquiry_With_RSSI_Entry_Result:
            BD_ADDRToStr(GAP_Event_Data->Event_Data.GAP_Inquiry_With_RSSI_Entry_Event_Data->BD_ADDR, Callback_BoardStr);
            Display(("\r\n"));
            Display(("Inquiry Entry With RSSI: %s, RSSI: %d.\r\n", Callback_BoardStr,     (int)GAP_Event_Data->Event_Data.GAP_Inquiry_With_RSSI_Entry_Event_Data->RSSI));
            break;

烧录后可以实现   Inquiry后得到蓝牙设备的RSSI值   这个目标。但是我在GAP_Event_Callback回调函数的case etInquiry_Result:中,也加上显示RSSI值的语句:Display(("Result: %d, %s, RSSI: %d.\r\n", (Index+1), Callback_BoardStr, (int)GAP_Inquiry_Event_Data->GAP_Inquiry_Data[Index].RSSI));烧录并发出“Inquiry”指令,发现进行了两次switch(GAP_Event_Data->Event_Data_Type)判断(也就是说,完成了上述的两个“case),并且两个RSSI值不一样,GAP_Inquiry_Event_Data->GAP_Inquiry_Data[Index].RSSI得到的RSSI值是正数:

【问题】

1、首先,RSSI值不会是正的,GAP_Inquiry_Event_Data->GAP_Inquiry_Data[Index].RSSI得到的为何是正数?

其实,GAP_Inquiry_Data结构体中并没有RSSI成员,我仿照GAP_Inquiry_With_RSSI_Entry_Event_Data结构体改的:

typedef struct _tagGAP_Inquiry_Data_t
{
   BD_ADDR_t         BD_ADDR;
   Byte_t            Page_Scan_Repetition_Mode;
   Byte_t            Page_Scan_Period_Mode;
   //Byte_t            Page_Scan_Mode;
   Class_of_Device_t Class_of_Device;
   Word_t            Clock_Offset;
   SByte_t           RSSI;         
} GAP_Inquiry_Data_t;

2、GAP_Event_Callback回调函数是是如何调用的?为何同一次“Inquiry”中,进行了两次switch(GAP_Event_Data->Event_Data_Type)判断(也就是说,完成了上述的两个“case),并且两个RSSI值是不一样的?

求帮助啊,求回复~

讲解一下GAP_Event_Callback回调函数也行

谢谢!

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

网站地图

Top