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(¶ms);
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, ¶ms);
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:
好的,感谢提供反馈