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

rfeasylinkRx初始化问题

TI工程师,你们好!

我在用CC1310F128RSM板子,初始化rfeasylinkrx时,初始化不通过,出问题的地方如下;

#ifdef RFEASYLINKRX_ASYNC
/* Reset the timeout flag */
rxTimeoutFlag = false;
/* Set the reception flag to its default state */
rxDoneFlag = false;

/* Open the GPTimer driver */
GPTimerCC26XX_Params params;
GPTimerCC26XX_Params_init(&params);
params.width = GPT_CONFIG_32BIT;
params.mode = GPT_MODE_ONESHOT;
params.direction = GPTimerCC26XX_DIRECTION_UP;
params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF;
hTimer = GPTimerCC26XX_open(Board_GPTIMER0A, &params);
if(hTimer == NULL)
{
while(1);
}

/* Set Timeout value to 2000ms */
rxTimeoutVal = (SysCtrlClockGet()*20UL)/10UL – 1UL;//(SysCtrlClockGet()*3UL)/10UL – 1UL;
GPTimerCC26XX_setLoadValue(hTimer, rxTimeoutVal);

/* Register the GPTimer interrupt */
GPTimerCC26XX_registerInterrupt(hTimer, rxTimeoutCb, GPT_INT_TIMEOUT);
#else
// Create an RX packet
EasyLink_RxPacket rxPacket = {0};
#endif //RFEASYLINKRX_ASYNC

程序死在了标红的地方,这边有问题和我哪边的设置有关呢?请帮我分析一下,谢谢!

Viki Shi:

打开timer失败,你是不是没定义handle
GPTimerCC26XX_Handle hTimer

user6340973:

回复 Viki Shi:

定义过了,如下:/* GPTimer handle and timeout value */GPTimerCC26XX_Handle hTimer;GPTimerCC26XX_Value rxTimeoutVal;

Viki Shi:

回复 user6340973:

你是否修改了例程?测试的板子是官方板还是自制板?

user6340973:

回复 Viki Shi:

我现在用的是CC1310F128RSM 自己画的板子,单跑rfeasylinkRx是没有问题的,但是我现在想结合rfeasylinklistenbeforetalk一起跑,初始化的时候就老是会跑到
if(hTimer == NULL)
{
while(1);
}

user6340973:

回复 Viki Shi:

CC1310对初始化的顺序有要求吗

Viki Shi:

回复 user6340973:

“但是我现在想结合rfeasylinklistenbeforetalk一起跑”可以具体说明一下你的思路及修改步骤吗

user6340973:

回复 Viki Shi:

思路如下:
首先ADC采样得到电量值,并用温度传感器采样得到温度值,然后用rfeasylinklistenbeforetalk进行发送数据,现在想发送数据结束后切换到RX状态,进行接收是否收到数据的ACK。现在是加了一个标志位进行判断是否发送成功,发送成功就切换到RX,接收到已收到的确认报文后,再继续采样发送数据,依次循环。

user6340973:

回复 Viki Shi:

刚刚试了一下,如果不加ADC采样初始化就可以初始化成功

Viki Shi:

回复 user6340973:

好的,感谢提供反馈

赞(0)
未经允许不得转载:TI中文支持网 » rfeasylinkRx初始化问题
分享到: 更多 (0)