zstack同时使用两个串行口的方法
zstack较新的版本支持同时使用两个串行口,不过要求一个是DMA方式另一个是ISR方式,具体操作方法如下:
1)首先打开hal_board_cfg.h文件,确定有以下语句:
/* Set to TRUE enable DMA usage, FALSE disable it */
#ifndef HAL_DMA
#define HAL_DMA TRUE
#endif
这段语句定义了编译器编译有关DMA的函数
2)找到workspace中项目名称,点击右键,在弹出的下拉菜单中点击options...
c/c++compiler->preprocessor选项卡,找到define symbols: 查看是否有ZTOOL_P1,如果没有添加一个,OK确定。
3)回到hal_board_cfg.h文件,修改代码如下
#if HAL_UART
// Always prefer to use DMA over ISR.
#if HAL_DMA
#ifndef HAL_UART_DMA
#if (defined ZAPP_P1) || (defined ZTOOL_P1)
#define HAL_UART_DMA 1
#elif (defined ZAPP_P2) || (defined ZTOOL_P2)
#define HAL_UART_DMA 2
#else
#define HAL_UART_DMA 1
#endif
#endif
#define HAL_UART_ISR 2
#else
#ifndef HAL_UART_ISR
#if (defined ZAPP_P1) || (defined ZTOOL_P1)
#define HAL_UART_ISR 1
#elif (defined ZAPP_P2) || (defined ZTOOL_P2)
#define HAL_UART_ISR 2
#else