目前了解还很肤浅,暂时先掌握这种简单粗暴不完善的方法死板的修改发射功率,转载如下:

CC2530 控制输出功率的寄存器是 TXPOWER:

Z-stack协议栈中修改发射功率



Zigbee协议栈(CC2530开发板) 修改发射功率 - 

 推荐功率设置:

Z-stack协议栈中修改发射功率



Zigbee协议栈(CC2530开发板) 修改发射功率 - 江淮一士 - baly_bao 的博客
 协议栈默认的设置是 0xd5,为了扩展信号传输的距离,我把TXPOWER寄存器值改为0xf5, 此时输出功率为4.5dBm.在mac_radio.c文件,做了如下修改:


void macRadioSetTxPower(uint8 txPower)
{
  halIntState_t  s;


  /* if the selected dBm is out of range, use the closest available */
  if (txPower > MAC_RADIO_TX_POWER_MAX_DBM)
  {
    txPower = MAC_RADIO_TX_POWER_MAX_DBM;
  }


  /*
   *  Set the global variable reqTxPower.  This variable is referenced
   *  by the function macRadioUpdateTxPower() to write the radio register.
   *
   *  A lookup table is used to translate the power level to the register
   *  value.
   */
  HAL_ENTER_CRITICAL_SECTION(s);
  reqTxPower = macRadioDefsTxPowerTable[txPower];
  HAL_EXIT_CRITICAL_SECTION(s);


  /* update the radio power setting */
//************** 自己修改 ******* 
  reqTxPower = 0xF5;
//*******************************
 

  macRadioUpdateTxPower();

  return txPower;

}


PS: 由于没有找到哪里调用了函数 macRadioSetTxPower(uint8 txPower),我也就没法修改它的形参。于是,我采用在函数中直接赋值的办法进行了修改,如上面红色部分所示。熟悉这一块的朋友们可以告诉我一下,先谢啦。

另外这篇转载的博文中有些大小写对应不上协议栈,大家定位不了的时候注意核对下大小写问题.

相关文章: