微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC2540 UART DAM问题

CC2540 UART DAM问题

时间:12-22 整理:3721RD 点击:

你好

请问有没有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;
}

这几句,控制的是收到多少字节,触发事件,然后调用回调函数。可以看一下。

你好  可否请教下具体怎么操作?我的情况和你是一样的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top