TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F 在开机后怎样设置 TX Power

Hi JRs:

   我想在开机后设置 TX Power,每次检查到按键按下后就设置一个 TX DB 值,例如开机后(默认是 0),第一次按下按键,设置成 1 DB,第二次按下按键设置成 2 DB,我的想法就是这样。

   我添加了按键函数,SimpleBroadcaster_keyChangeHandler() ,我能确定每次按键按下后都能跑进这个函数里,我先是用 HCI_EXT_SetTxPowerCmd(sTxPowerStatus_0_DBM) 函数的,HCI_EXT_SetTxPowerCmd(1)、HCI_EXT_SetTxPowerCmd(2)、HCI_EXT_SetTxPowerCmd(3) 等等,但是我发现在调用完 HCI_EXT_SetTxPowerCmd(x) 函数后,Display_print0(dispHandle, 0, 0, "KKK_END"); 这个 log 就打印不出来了,如果不加 HCI_EXT_SetTxPowerCmd(x) 这个函数 log 就能正常打印出来

   我在发现 HCI_EXT_SetTxPowerCmd(x) 函数走不通时就换成了 GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof (scanRspData), scanRspData_x),这个应该是开机时设置 DB 的,我把这个结构体的最后一个值改成 1、2、3…,这样修改后还是一样,不能打印后面的 Display_print0(dispHandle, 0, 0, "KKK_END"); 这个 log

所以我的问题是:CC2640R2F 在开机后还能够设置 TX Power 吗?我该怎样设置呢?我写的这个函数有什么问题吗?

请高手帮忙解答下。

谢谢

static void SimpleBroadcaster_keyChangeHandler(uint8 keys)
{
if(keys & KEY_SWITCH_KEY_PRESS)
{
//HCI_EXT_SetTxPowerCmd(sTxPowerStatus_0_DBM);

if (power_value == 1)
{
Display_print0(dispHandle, 0, 0, "KKK_1");

GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof (scanRspData), scanRspData_1);
}

if (power_value == 2)
{
Display_print0(dispHandle, 0, 0, "KKK_2");

GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof (scanRspData), scanRspData_2);
}

if (power_value == 3)
{
Display_print0(dispHandle, 0, 0, "KKK_2");

GAPRole_SetParameter(GAPROLE_SCAN_RSP_DATA, sizeof (scanRspData), scanRspData_3);
}

power_value ++;

if (power_value > 12)
power_value = 0;

Display_print0(dispHandle, 0, 0, "KKK_END");

}

static uint8 scanRspData_1[] =
{
// complete name
0x15, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
'S',
'i',
'm',
'p',
'l',
'e',
'B',
'L',
'E',
'B',
'r',
'o',
'a',
'd',
'c',
'a',
's',
't',
'e',
'r',

// Tx power level
0x02, // length of this data
GAP_ADTYPE_POWER_LEVEL,
1 // 0dBm
};

// GAP – SCAN RSP data (max size = 31 bytes)
static uint8 scanRspData_2[] =
{
// complete name
0x15, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
'S',
'i',
'm',
'p',
'l',
'e',
'B',
'L',
'E',
'B',
'r',
'o',
'a',
'd',
'c',
'a',
's',
't',
'e',
'r',

// Tx power level
0x02, // length of this data
GAP_ADTYPE_POWER_LEVEL,
2 // 0dBm
};

Kevin Qiu1:

SDK版本是多少,修改发射功率,可以在初始化最后使用HCI_EXT_SetTxPowerCmd()

user6198971:

回复 Kevin Qiu1:

SDK 包名是:simplelink_cc2640r2_sdk_4_20_00_04。

我使用的是 simple_broadcaster 这个 example project。
我想把 Tx Power 设成 5 DB,我在 hci.h 里把所有的 Level 都 定义成 5DB 的,但是实际测试并不是 5DB,而且这样修改也没有效果(实际测试和默认的值一样),那我该怎样修改呢?

Kevin Qiu1:

回复 user6198971:

设置成5dB 可以在SimpleBroadcaster_init中使用 HCI_EXT_SetTxPowerCmd(HCI_EXT_TX_POWER_5_DB M);

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F 在开机后怎样设置 TX Power
分享到: 更多 (0)