微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > zigbee z-stack 3.0 工程ZNP 关于串口UART

zigbee z-stack 3.0 工程ZNP 关于串口UART

时间:10-02 整理:3721RD 点击:

你好!我想在3.0版本协议栈ZNP工程下实现串口UART 通信,ZNP默认情况下是spi通信,请问我怎样设置实现串口UART通信?需要修改/添加宏定义嘛?

谢谢!

打开hal_board_cfg.h,找到如下宏,修改成如下内容即可:

#define ZNP_CFG1_SPI             0         /* use SPI transport */
#define ZNP_CFG1_UART            1         /* use UART transport */

谢谢你的答复,我按照你的修改了,串口能够接收数据,串口打印不出来数据。

我在处理接串口收数据  void MT_UartProcessZToolData ( uint8 port, uint8 event )   函数中,添加 HalUARTWrite (port, &ch, 1)一个串口打印功能,让接收的串口数据再串口打印出来,但是串口打印不出来数据。添加的函数如图注释部分所示。

在这个函数下修改

void InitBoard( uint8 level )
{
if ( level == OB_COLD )
{
// IAR does not zero-out this byte below the XSTACK.
*(uint8 *)0x0 = 0;
// Interrupts off
osal_int_disable( INTS_ALL );
// Check for Brown-Out reset
ChkReset();

#if defined CC2531ZNP
znpCfg1 = ZNP_CFG1_UART;
#elif defined CC2530_MK
znpCfg1 = ZNP_CFG1_SPI;
znpCfg0 = ZNP_CFG0_32K_OSC;
#else
znpCfg1 = 0;      //                                                    这边修改成这个
znpCfg0 = P1_2;
// Tri-state the 2 CFG inputs after being read (see hal_board_cfg_xxx.h for CFG0.)
P1INP |= BV(2);
P2INP |= BV(0);
#endif
}
else // !OB_COLD
{
/* Initialize Key stuff */
HalKeyConfig(HAL_KEY_INTERRUPT_DISABLE, OnBoard_KeyCallback);
}
}

static void npInit(void)
{
if (ZNP_CFG1_UART == znpCfg1)
{
halUARTCfg_t uartConfig;

uartConfig.configured = TRUE;
uartConfig.baudRate = ZNP_UART_BAUD;
#ifdef ZNP_ALT
uartConfig.flowControl = FALSE;                  //   修改成这个
#else
uartConfig.flowControl = FALSE;                   //   修改成这个
#endif
uartConfig.flowControlThreshold = HAL_UART_FLOW_THRESHOLD;
uartConfig.rx.maxBufSize = HAL_UART_RX_BUF_SIZE;
uartConfig.tx.maxBufSize = HAL_UART_TX_BUF_SIZE;
uartConfig.idleTimeout = HAL_UART_IDLE_TIMEOUT;
uartConfig.intEnable = TRUE;
uartConfig.callBackFunc = npUartCback;
HalUARTOpen(HAL_UART_PORT, &uartConfig);
MT_UartRegisterTaskID(znpTaskId);
}

可以加我的QQ:181408650,讨论

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

网站地图

Top