微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540 自身如何读取 RSSI

CC2540 自身如何读取 RSSI

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

HCI_ReadRssiCmd();应该使用到这个函数吧,可是不知道这个函数如何使用?

GAPRole_GetParameter(GAPROLE_CONNHANDLE, &temp1 );  

temp2 = HCI_ReadRssiCmd(temp1);

这样试了一下可是不太对,似乎有回调函数,但是不知道怎么用,求高人指点。

GAPRole_SetParameter(GAPROLE_RSSI_READ_RATE,sizeof(uint16),&desired_rssi_rate);

这个是设置RSSI的读取速率,默认是0,所以你要设一个非零值,然后如下,就不详细列了,你跟一下GAPROLE_RSSI_READ_RATE应该差不多就明白了。

static void RssiRead( int8 newRSSI );
static void RssiRead( int8 newRSSI )
{
  //你的处理
}



// GAP Role Callbacks
static gapRolesCBs_t keyFob_PeripheralCBs =
{
  peripheralStateNotificationCB,  // Profile State Change Callbacks
  RssiRead                // When a valid RSSI is read from controller
};

谢谢了,已经解决问题了

怎么解决的啊?能指导下解决方案吗?谢谢

我在void SensorTag_Init( uint8 task_id )

增加了:GAPRole_SetParameter(GAPROLE_RSSI_READ_RATE,sizeof(uint16),&desired_rssi_rate);

static void RssiRead( int8 newRSSI );
static void RssiRead( int8 newRSSI )
{
  这里用什么函数?没理解
}



// GAP Role Callbacks
static gapRolesCBs_t keyFob_PeripheralCBs =
{
  peripheralStateNotificationCB,  // Profile State Change Callbacks
  RssiRead                // When a valid RSSI is read from controller
};

你好,TY先生,我想你那个回调函数static void RssiRead( int8 newRSSI),应该改成static void RssiRead( uint16 connHandle, int8 newRSSI),应该读RSSI是通过底层来完成的,TI的程序只提供一个回调函数来处理,底层传上来的参数应该是两个。

static void RssiRead( int8 newRSSI )是一个回调函数,在连接状态下,底层按照设定的时间间隔,读取RSSI的值。然后调用你设置的回调函数,把参数传newRSSI.函数体就是你自己的程序代码,主要是值跟新RSSI后,你想做什么事情。

您好,请问您的这个代码是在SimpleBLEPeripheral工程里改的吗?我想实现主从连接后,从机测读取并显示出RSSI值(买回来的板子是主机的LCD显示RSSI值)。然后我就按您的方法改了,发现desired_rssi_rate是未定义的,估计您不是在SimpleBLEPeripheral工程里。请问,我这种情况,如何实现呀?十分感谢!

楼上是在sensortag例程里改的,SimplePeripheral例程里没有定义变量 你自己定义一下,测试一下,这个就是读取自身RSSI值的,希望你早日解决!

谢谢楼上的朋友

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

网站地图

Top