This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2530串口多次调用接收回调函数

问题是这样的,我的串口收发数据时正常的,但是当串口没收到数据时,回调函数rxCB仍然执行,接收缓存中仍然是以前收到的数据,这我有点不明白了,为什么没数据到达串口仍然执行回调函数呢?我不想让回调函数多次执行,可以怎么设置下吗?多次执行,会导致我的其他部门也跟着执行,虽然不影响使用,但是我感觉那样功耗会增加,其他部分工作的太频繁,太累了。呵呵,能帮我解决下吗?谢谢了。

初始化代码如下:

void UartInit(void)
{
//下面六句是我加的,初始化串口的
halUARTCfg_t uartConfig;//定义个串口结构体
uartConfig.configured =TRUE;//串口配置为真
uartConfig.baudRate =HAL_UART_BR_9600;//波特率为9600
uartConfig.flowControl =FALSE;//流控制为假
uartConfig.callBackFunc = rxCB;//定义串口回调函数
HalUARTOpen(HAL_UART_PORT_0,&uartConfig);// 打开串口0
HalUARTOpen(HAL_UART_PORT_1,&uartConfig);// 打开串口1
}

串口配置代码如下(我将串口改到串口2了,用P1脚上的串口):

#if HAL_UART
#ifndef HAL_UART_DMA
#if HAL_DMA
#if (defined ZAPP_P2) || (defined ZTOOL_P2)
#define HAL_UART_DMA 2
#else
#define HAL_UART_DMA 2       //zs 20141030 1
#endif
#else
#define HAL_UART_DMA 0
#endif
#endif

#ifndef HAL_UART_ISR
#if HAL_UART_DMA // Default preference for DMA over ISR.
#define HAL_UART_ISR 0
#elif (defined ZAPP_P2) || (defined ZTOOL_P2)
#define HAL_UART_ISR 2
#else
#define HAL_UART_ISR 2        //zs 20141030 1
#endif
#endif