This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F 在开机后怎样设置 TX Power

Other Parts Discussed in Thread: CC2640R2F

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
};