概述
zigbee串口打印问题
在终端节点向协调器发数据时,在数据流中伴有该节点的网络地址,而有时通过PC端无法打印出来。
1.可能是串口软件的问题:
用过好几个串口软件,有时会出现停止,或乱码行为,在经过多次换用软件,发现**SecureCRT**这个软件还不错,解决的大部分问题
2.发过来的数据没有转换:
一般的在终端发送数据的函数中,加入'0'转换就行了。
SendBuf[0]='$';
SendBuf[1]='@';
SendBuf[2] = HI_UINT16( EndDeviceID );
SendBuf[3] = LO_UINT16( EndDeviceID );
SendBuf[4] = ZIGBEE_FUN_CODE_RFID_Conflict; //fc
SendBuf[5]=5; //data len
SendBuf[6]=(RevBuffer[1]==0)?1:0; //成功
SendBuf[7]=RevBuffer[2]; //data
SendBuf[8]=RevBuffer[3]; //data
SendBuf[9]=RevBuffer[4]; //data
SendBuf[10]=RevBuffer[5]; //data
SendBuf[11] = XorCheckSum(&SendBuf[2], 9);
SendBuf[12] = 'r';
SendBuf[13] = 'n';
在data部分加入’0’,就行了
SendBuf[8]=RevBuffer[3] + '0'; //data
SendBuf[9]=RevBuffer[4] + '0'; //data
SendBuf[10]=RevBuffer[5] + '0'; //data
3.还不能解决的话可以试试ZIGBBE中的数据转换的函数_ltoa(unsigned long l, unsigned char *buf, unsigned char radix)
在OSAL.c文件中:
unsigned char * _ltoa(unsigned long l, unsigned char *buf, unsigned char radix)
{
#if defined( __GNUC__ )
return ( (char*)ltoa( l, buf, radix ) );
#else
unsigned char tmp1[10] = "", tmp2[10] = "", tmp3[10] = "";
unsigned short num1, num2, num3;
unsigned char i;
buf[0] = '