TI公司的ZSTACK协议栈,串口配置有个流控制选项。如果你的串口只接了RX TX GND三根线,必须关闭这个流控制,才能和协议栈串口通信,不然串口的数据发布出来。
下面是2530的串口初始化配置。 MT_UART.C里面 。Zstack 2.5.1a协议栈
void MT_UartInit ()
{
halUARTCfg_t uartConfig; /* Initialize APP ID */
App_TaskID = 0;
/* UART Configuration */
uartConfig.configured = TRUE;
uartConfig.baudRate = MT_UART_DEFAULT_BAUDRATE;
uartConfig.flowControl = FALSE ; //MT_UART_DEFAULT_OVERFLOW;硬件流控制,开了他,如果串口只接了RX TX,是不能通信的。
uartConfig.flowControlThreshold = MT_UART_DEFAULT_THRESHOLD; //上面关闭后,他自动失效。关闭流控制,才能两线通信。
uartConfig.rx.maxBufSize = MT_UART_DEFAULT_MAX_RX_BUFF;
uartConfig.tx.maxBufSize = MT_UART_DEFAULT_MAX_TX_BUFF;
uartConfig.idleTimeout = MT_UART_DEFAULT_IDLE_TIMEOUT;
uartConfig.intEnable = TRUE;
#if defined (ZTOOL_P1) || defined (ZTOOL_P2)
uartConfig.callBackFunc = MT_UartProcessZToolData;
#elif defined (ZAPP_P1) || defined (ZAPP_P2)
uartConfig.callBackFunc = MT_UartProcessZAppData;
#else
uartConfig.callBackFunc = NULL;
#endif
/* Start UART */
#if defined (MT_UART_DEFAULT_PORT)
HalUARTOpen (MT_UART_DEFAULT_PORT, &uartConfig);
#else
/* Silence IAR compiler warning */
(void)uartConfig;
#endif
/* Initialize for ZApp */
#if defined (ZAPP_P1) || defined (ZAPP_P2)
/* Default max bytes that ZAPP can take */
MT_UartMaxZAppBufLen = 1;
MT_UartZAppRxStatus = MT_UART_ZAPP_RX_READY;
#endif
}
|