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

CC1310: PROP_ERROR_RXBUF

Part Number:CC1310

PROP_ERROR_RXBUF错误 怎么解决

Nick Sun:

您好,

感谢您的提问。

问题是 PROP_ERROR_RXBUF,则可能意味着缓冲区溢出,并且您发送的数据包大于 Rx 缓冲区。

一般来说,您可以修改 #define MAX_LENGTH 和  RF_cmdPropRx.maxPktLen 来解决这个问题。

,

ruo guo:

RF_cmdPropRx.maxPktLen已修改为正常通信的2倍   但是还出错

,

ruo guo:

请问下怎么可以复位其状态  用RF_runCmd调用rfc_CMD_CLEAR_RX_t这个命令后卡死了

,

Nick Sun:

您好,

能给我们提供更多的信息吗?这将会很有帮助。

您在使用什么工程做什么测试?(什么版本的SDK使用了哪个示例?)

,

ruo guo:

SDK为:simplelink_cc13x0_sdk_4_20_02_07     

例程:rfPacketRx、rfPacketTx

,

ruo guo:

还有个问题 看门狗计时结束后系统没有复位,调用SysCtrlSystemReset函数也不能复位

#include "bsp_watchdog.h"#define TIMEOUT_MS1000
#define SLEEP_US500000/**======== watchdogCallback ========*/
void watchdogCallback(uintptr_t watchdogHandle)
{/** If the Watchdog Non-Maskable Interrupt (NMI) is called,* loop until the device resets. Some devices will invoke* this callback upon watchdog expiration while others will* reset. See the device specific watchdog driver documentation* for your device.*/myPrintf("Watchdog reset!\r\n");usleep(SLEEP_US);SysCtrlSystemReset();while (1) {}
}/**======== gpioButtonIsr ========*/
void gpioButtonIsr(uint_least8_t index)
{
//GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON);/** Simulate the application being stuck in an ISR. This ISR can be* preempted by the watchdog Non-Maskable Interrupt (NMI).*/while (1) {}
}void WatchdogTask(UArg arg0, UArg arg1)
{Watchdog_Handle watchdogHandle;Watchdog_Params params;uint32_treloadValue;/* Call driver init functions */Watchdog_init();/* Open a Watchdog driver instance */Watchdog_Params_init(&params);params.callbackFxn = (Watchdog_Callback) watchdogCallback;params.debugStallMode = Watchdog_DEBUG_STALL_ON;params.resetMode = Watchdog_RESET_ON;watchdogHandle = Watchdog_open(Board_WATCHDOG0, &params);if (watchdogHandle == NULL) {/* Error opening Watchdog */while (1) {}}/** The watchdog reload value is initialized during the* Watchdog_open() call. The reload value can also be* set dynamically during runtime.** Converts TIMEOUT_MS to watchdog clock ticks.* This API is not applicable for all devices.* See the device specific watchdog driver documentation* for your device.*/reloadValue = Watchdog_convertMsToTicks(watchdogHandle, TIMEOUT_MS);/** A value of zero (0) indicates the converted value exceeds 32 bits* OR that the API is not applicable for this specific device.*/if (reloadValue != 0) {Watchdog_setReload(watchdogHandle, reloadValue);}Power_disablePolicy();while (1) {/** Disabling power policy will prevent the device from entering* low power state. The device will stay awake when the CPU is* idle.*/
//Power_disablePolicy();/* Sleep for SLEEP_US before clearing the watchdog */usleep(SLEEP_US);Watchdog_clear(watchdogHandle);
//GPIO_toggle(Board_GPIO_LED0);/** Enabling power policy will allow the device to enter a low* power state when the CPU is idle. How the watchdog peripheral* behaves in a low power state is device specific.*/
//Power_enablePolicy();
//
///* Sleep for SLEEP_US before clearing the watchdog */
//usleep(SLEEP_US);
//Watchdog_clear(watchdogHandle);
//GPIO_toggle(Board_GPIO_LED0);}
}

,

Nick Sun:

您好,

ruo guo said:RF_cmdPropRx.maxPktLen已修改为正常通信的2倍   但是还出错

您修改了 maxPktLen,那您有没有修改相应的  packet size 和RF队列中数据条目的大小?

ruo guo said:请问下怎么可以复位其状态  用RF_runCmd调用rfc_CMD_CLEAR_RX_t这个命令后卡死了

您这边指得是什么状态?RX commands 的状态?您不需要清空相关的命令。

ruo guo said:看门狗计时结束后系统没有复位,调用SysCtrlSystemReset函数也不能复位

请参考看门狗的示例,有相关如何使用看门狗的方法介绍。要注意的是看门狗不会在standby模式下运行。

,

ruo guo:

调用函数Power_disablePolicy  后 是不是关闭了所有低功耗模式

,

Nick Sun:

您好,

您的问题已同步给工程师,有结论会及时联系您。

,

Nick Sun:

您好,

是这样的,您可以查看这个文档:Power.h File Reference (ti.com)

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: PROP_ERROR_RXBUF
分享到: 更多 (0)