关于CC3200调节发射功率的问题
我们自己做的板子射频方面有些问题,经射频工程师测试后说要把那个发射功率减小一些可以修正频偏,现在我想通过sl_SetSockOpt这个函数来减小发射功率。
这个函数的第一个参数是sockID,需要创建一个基础socket,使用sl_Socket函数创建。
现在的问题如下:
1.使用sl_Socket函数创建socket时有时成功,有时失败(返回-72),这个函数的调用需要在什么样的状态下调用呢?
2.使用sl_SetSockOpt这个函数修改功率以后能否在下次上电时也使用这个函数设定的值呢?
代码如下:
sl_Start(0, 0, 0);
_i16 rawSocket = sl_Socket(SL_AF_RF, SL_SOCK_RAW, 1);
if(rawSocket < 0)
{
ERR_PRINT(rawSocket);
while(1);
}
_u32 txpower = 8; // valid range is 1-15
SlSocklen_t len = sizeof(txpower);
lRetVal = sl_SetSockOpt(rawSocket, SL_SOL_PHY_OPT, SL_SO_PHY_TX_POWER, &txpower, sizeof(txpower));
if(lRetVal < 0)
{
ERR_PRINT(lRetVal);
while(1);
}
txpower = 100;
lRetVal = sl_GetSockOpt(rawSocket, SL_SOL_PHY_OPT, SL_SO_PHY_TX_POWER, &txpower, &len);
if(lRetVal < 0)
{
ERR_PRINT(lRetVal);
}
UART_PRINT("get TXPOWER = %d\r\n", txpower);
// Set Tx power level for station mode
// Number between 0-15, as dB offset from max power - 0 will set max power
ucPower = 0;
lRetVal = sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,
WLAN_GENERAL_PARAM_OPT_STA_TX_POWER, 1, (unsigned char *)&ucPower);
ASSERT_ON_ERROR(lRetVal);
这个函数也可以调节发射功率吧,这里说的是根据这个参数的大小,0是最大功率,15是最小功率。
已经解决了,在station模式下面确实应该使用这个函数修改发射功率大小