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(¶ms);params.callbackFxn = (Watchdog_Callback) watchdogCallback;params.debugStallMode = Watchdog_DEBUG_STALL_ON;params.resetMode = Watchdog_RESET_ON;watchdogHandle = Watchdog_open(Board_WATCHDOG0, ¶ms);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)