CC2540 UART DAM问题
你好
请问有没有stack 1.3 版本的UART 程序?
我现在写的UART程序结束数据,一包每次都被分成好几包,而且数据多就接收不到了。
hi,
1.3的UART程序包含在1.3的协议栈里面, 请去官网下载.
#if !defined HAL_UART_DMA_RX_MAX
#define HAL_UART_DMA_RX_MAX 128
#endif
#if !defined HAL_UART_DMA_TX_MAX
#define HAL_UART_DMA_TX_MAX HAL_UART_DMA_RX_MAX
#endif
#if !defined HAL_UART_DMA_HIGH
#define HAL_UART_DMA_HIGH (HAL_UART_DMA_RX_MAX - 1)
#endif
#if !defined HAL_UART_DMA_IDLE
#define HAL_UART_DMA_IDLE (0 * HAL_UART_MSECS_TO_TICKS)
#endif
#if !defined HAL_UART_DMA_FULL
#define HAL_UART_DMA_FULL (HAL_UART_DMA_RX_MAX - 16)
#endif
我希望我的UART收到一包数据,只调用一次回调函数,而不是一个字节调用一次,DMA的这一段要怎么配置?
uartConfig.configured = TRUE;
uartConfig.baudRate = HAL_UART_BR_38400;
uartConfig.flowControl = FALSE;
uartConfig.flowControlThreshold = 128;
uartConfig.rx.maxBufSize = 128;
uartConfig.tx.maxBufSize = 128;
uartConfig.idleTimeout = 6;
uartConfig.intEnable = TRUE;
uartConfig.callBackFunc = UserUartBack;
static void HalUARTPollDMA(void)函数中,
if (cnt >= HAL_UART_DMA_FULL)
{
evt = HAL_UART_RX_FULL;
}
else if (cnt >= HAL_UART_DMA_HIGH)
{
evt = HAL_UART_RX_ABOUT_FULL;
PxOUT |= HAL_UART_Px_RTS;
}
else if (cnt && !dmaCfg.rxTick)
{
evt = HAL_UART_RX_TIMEOUT;
}
if (dmaCfg.txMT)
{
dmaCfg.txMT = FALSE;
evt |= HAL_UART_TX_EMPTY;
}
这几句,控制的是收到多少字节,触发事件,然后调用回调函数。可以看一下。
你好 可否请教下具体怎么操作?我的情况和你是一样的