TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2530使用Z-Stack Home 1.2.0协议栈,串口数据错乱问题

求高手指点迷津!
在使用  Z-Stack Home 1.2.0–2530协议栈定义串口功能时,经常出现串口打印乱码,

搞了好久了都不知道是怎么回事。

在Option的定义如下:

FEATURE_GREEN_POWER

SECURE=0
xTC_LINKKEY_JOIN
xNV_INIT
NV_RESTORE
xPOWER_SAVING
NWK_AUTO_POLL
xHOLD_AUTO_START
xZTOOL_P1
MT_TASK
MT_APP_FUNC
MT_SYS_FUNC
MT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG
ZCL_READ
ZCL_WRITE
ZCL_REPORT
xZCL_EZMODE
ZCL_BASIC
xZCL_IDENTIFY
ZCL_DOORLOCK
ZCL_SCENES
ZCL_GROUPS
xHAL_UART_DMA
HAL_UART=TRUE
xHAL_DMA=0

由于工程问题:本工程是与CC2538通信的,,我尝试过去掉MT_TASK定义,但是编译就会出错,在编译过程中我曾多次想用选择中断方式处理串口数据,但是却一直编译不过,所以一直在DMA模式下工作,并一直出现串口打印乱码。

在多次调用MT_UART层代码测试还是出现问题的情况下,添加了下面部分代码也是同样出错:

void rxCB( uint8 port, uint8 event )
{
// extern uint8 SampleApp_TaskID;
unsigned char flag=0;
uint16 j=0;
rxlen=Hal_UART_RxBufLen(0);
while (Hal_UART_RxBufLen(0)) //检测串口数据是否接收完成
{
HalUARTRead (0,&bflds[j], 1); //把数据接收放到buf中
j++; //记录字符数
flag=1; //已经从串口接收到信息
} if(flag)
{ flag=0;
HalUARTWrite( 0, &bflds[0], j);
osal_memcpy(&bflds[0],0,j);
j=0;
}
}

void Tq_uartInit(void)
{
halUARTCfg_t uartConfig; /* UART Configuration */
uartConfig.configured = TRUE;
uartConfig.baudRate = MT_UART_DEFAULT_BAUDRATE;
uartConfig.flowControl = FALSE;
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;

uartConfig.callBackFunc = rxCB;

HalUARTOpen (0, &uartConfig);
}

总结:求高手百忙中抽空看下是什么原因,帮忙解决下问题,感激不尽!羊年大吉!

quan Chen:

回复 VV:

115200,用2538的例程就不会出现此种问题。

quan Chen:

回复 VV:

用的是2530,

quan Chen:

回复 jiewei luo:

都试过了,只有将MT层的宏屏蔽才可以用,不知道是什么情况,还请大侠,帮忙解决下疑问!

谢谢了!

jiewei luo:

回复 quan Chen:

貌似是MT层在初始化之后会发一些log消息出来,所以造成乱码。

貌似以前有看到输出过自己的短地址和父设备的短地址

赞(0)
未经允许不得转载:TI中文支持网 » CC2530使用Z-Stack Home 1.2.0协议栈,串口数据错乱问题
分享到: 更多 (0)