JN-AN-1216是NXP提供的关于网关的工程:
文件夹全名:JN-AN-1216-Zigbee-3-0-IoT-ControlBridge
之前的版本的暂时过去就过去了,目前版本(2019.01.01)的版本是:JN-AN-1216-Zigbee-3-0-IoT-ControlBridge-V1011
点1、默认是uart0作为和上位机ZGWUI的数据通信口,现在修改uart1为数据口
为什么修改,因为把板子上把uart1接到了主单片机(处理网络数据的MCU)的串口上了,接uart0的话就不用改了。
修改起来很简单:
1、打开 …\JN-AN-1216-Zigbee-3-0-IoT-ControlBridge\Source\Common\uart.c
1.1、
/* default to uart 0 */
#ifndef UART
#define UART E_AHI_UART_1 /* 默认是串口0,修改为串口1就好了 */
#endif
1.2、不知道为什么这里使用的是E_AHI_UART_0,不是UART,修改一下。
PUBLIC void UART_vTxChar(uint8 u8Char)
{
while ( !UART_bTxReady () && !( u8AHI_UartReadLineStatus ( E_AHI_UART_0 ) & E_AHI_UART_LS_TEMT ) );
vAHI_UartWriteData(UART, u8Char);
while ( !UART_bTxReady() && !( u8AHI_UartReadLineStatus ( E_AHI_UART_0 ) & E_AHI_UART_LS_TEMT ) );
}
改
PUBLIC void UART_vTxChar(uint8 u8Char)
{
while ( !UART_bTxReady () && !( u8AHI_UartReadLineStatus ( UART ) & E_AHI_UART_LS_TEMT ) );
vAHI_UartWriteData(UART, u8Char);
while ( !UART_bTxReady() && !( u8AHI_UartReadLineStatus ( UART ) & E_AHI_UART_LS_TEMT ) );
}
1.3、改为uart1后中断起不来(没调起来)将
void APP_isrUart ( void )
函数放到app.start.c -> APP_vMainLoop() -> while(1)主循环里面的去轮询吧。
1.4、修改波特率:
选中JN-AN-1216-Zigbee-3-0-IoT-ControlBridge工程 -> 右键Properties -> c/c++ Build ->Builder Settings:
在 Use default build command 下将波特率BAUD修改为自己想修改的波特率就好了。
点2、调试口默认uart1,使能调试uart1 或 修改为uart0
使能调试uart1:
1.1、选中JN-AN-1216-Zigbee-3-0-IoT-ControlBridge工程 -> 右键Properties -> c/c++ Build ->Builder Settings:
在 Use default build command 下将添加DEBUG=UART1就好了 (如果DEBUG=UART0就是使能UART0,前提是先配好UART0)。
1.2、找到入口函数 app.start.c -> vAppMain(void) ->
DBG_vUartInit ( DEBUG_UART, DBG_E_UART_BAUD_RATE_115200 );
这里修改波特率。
打开 Makefile 文件:里面已经默认有uart1的配置了,添加或去掉 # 就是禁止使能相应的调试数据输出:
ifeq ($(DEBUG), UART1)
CFLAGS += -DDBG_ENABLE
$(info Building with debug UART1...)
CFLAGS += -DUART_DEBUGGING
CFLAGS += -DDEBUG_UART=DBG_E_UART_1
#CFLAGS += -DDEBUG_APP_OTA
#CFLAGS += -DDEBUG_ZCL
CFLAGS += -DDEBUG_NWK_RECOVERY
#CFLAGS += -DDEBUG_PDM_EXTENDED
CFLAGS += -DDEBUG_ZB_CONTROLBRIDGE_TASK
CFLAGS += -DTRACE_APP
#CFLAGS += -DDEBUG_PDM_EXTENDED
CFLAGS += -DDEBUG_SERIAL_LINK
CFLAGS += -DDEBUG_APP_GP
CFLAGS += -DTRACE_GP_DEBUG
endif
修改为uart0
打开 Makefile 文件里增加一个uart0的配置就好了
ifeq ($(DEBUG), UART0)
CFLAGS += -DDBG_ENABLE
$(info Building with debug UART0...)
CFLAGS += -DUART_DEBUGGING
CFLAGS += -DDEBUG_UART=DBG_E_UART_0
#CFLAGS += -DDEBUG_APP_OTA
CFLAGS += -DDEBUG_ZCL
CFLAGS += -DDEBUG_NWK_RECOVERY
#CFLAGS += -DDEBUG_PDM_EXTENDED
CFLAGS += -DDEBUG_ZB_CONTROLBRIDGE_TASK
CFLAGS += -DTRACE_APP
#CFLAGS += -DDEBUG_PDM_EXTENDED
CFLAGS += -DDEBUG_SERIAL_LINK
CFLAGS += -DDEBUG_APP_GP
CFLAGS += -DTRACE_GP_DEBUG
endif
回到上面那一步将DEBUG=UART0,其他都一样的。
可以将UART0的流控关掉或开起来
开:vAHI_UartSetRTSCTS(E_AHI_UART_0, TRUE);
关:vAHI_UartSetRTSCTS(E_AHI_UART_0, FALSE);