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);