zigbee串列埠列印無法顯示或亂碼解決方法

2021-07-08 20:05:20 字數 2017 閱讀 5496

在終端節點向協調器發資料時,在資料流中伴有該節點的網路位址,而有時通過pc端無法列印出來。

用過好幾個串列埠軟體,有時會出現停止,或亂碼行為,在經過多次換用軟體,發現**securecrt**這個軟體還不錯,解決的大部分問題
一般的在終端傳送資料的函式中,加入'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

在osal.c檔案中:

unsigned

char * _ltoa(unsigned

long l, unsigned

char *buf, unsigned

char radix)

strcat((char*)buf, (char

const*)tmp2);

if (num3 || num2)

strcat((char*)buf, (char

const*)tmp1);

if (!num3 && !num2 && !num1)

strcpy((char*)buf, "0");

} else

if ( radix == 16 )

strcat((char*)buf, (char

const*)tmp1);

if (!num2 && !num1)

strcpy((char*)buf, "0");

} else

return null;

return buf;

#endif

}

l代表的是要轉換的陣列

buf代表的是轉換後的陣列的指標

radix代表的是幾進製,10或16

這是我自己寫的轉換函式(自己開了雙串列埠):

//埠列印函式轉化  uart:0->uart0,1->uart1;data目的陣列;len長度;slen從第幾位開始;elen倒數第幾位結束

static void uart_printf(uint8 uart,uint8 *data,uint8

len,uint8 slen,uint8 elen)

; uint8 *ltoas;

ltoas=data;

for(i=slen;i*ltoas++='\0';

if(uart==0)

haluartwrite(uart0,data,len-slen);

else

haluartwrite(uart1,data,len-slen);

}

無法顯示隱藏的檔案或資料夾

題 在資料夾選項裡面已經設定好顯示隱藏的檔案,但系統還是無法顯示隱藏的檔案或資料夾。方法 新建文字文件,把虛線內的內容複製進去,另存為 reg 格式的檔案,接著雙擊確定匯入登錄檔即可。windowsregistryeditorversion5.00 hkey current user softwar...

Jps 資訊顯示不全或不可用,無法殺死程序

1 正常情況 找到使用該程序的使用者,進入該使用者進行檢視 ps ef grep pid su 使用者名稱 jps2 異常情況 假如程序被停止 jps kill 9 pid發現程序還有殘留 ps ef grep pidpid資訊殘留,去 tmp hsperfdata 使用者名稱 資料夾刪除該pid檔...

Jps 資訊顯示不全或不可用,無法殺死程序

1 正常情況 找到使用該程序的使用者,進入該使用者進行檢視 ps ef grep pid su 使用者名稱 jps2 異常情況 假如程序被停止 jps kill 9 pid發現程序還有殘留 ps ef grep pidpid資訊殘留,去 tmp hsperfdata 使用者名稱 資料夾刪除該pid檔...