我想用MSComm控制元件發送資料,串口助手接收并顯示16進制,可是超過128的數值,都顯示為00,將char型別轉換其它資料型別后串口助手顯示都是ASCII碼,有什么辦法可以將發送過去大于128的的數值,在串口助手中以16進制顯示。
,
////////////////////////////////////////
char FS[30];
AnsiString Fa[30];
////////////////////////////////////////
FS[0]=0x81;//超出128范圍,顯示00
FS[1]=0x01;
FS[2]=0x11;
////////////////////////////////////////
comm8->CommPort=8;
comm8->InputMode=comInputModeBinary;
comm8->Settings="9600,N,8,1";
comm8->PortOpen=true;
////////////////////////////////////////
for(int i=0;i<11;i++)
{
Fa[i]=FS[i];
comm8->Output=Fa[i];
}
comm8->PortOpen=false;
uj5u.com熱心網友回復:
用unsigned char,不要用charchar FS[30];
換成:
byte FS[30];
uj5u.com熱心網友回復:
妖哥:unsinged char FS[30];
AnsiString Fa[30];
FS[0]=0x81;//超出128范圍,顯示00
FS[1]=0x01;
FS[2]=0x11;
將char型別改為unsigned char型別后;
串口助手16進制顯示“31 32 39 31 31 37”。
串口助手ACSII顯示“129117”。
發送過去的資料只用串口助手顯示,不做其他處理,只想在串口助手16進制接受到16進制資料而已!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154212.html
標籤:基礎類
上一篇:0開頭帶8和9的數無法賦值給陣列,提示“[C++ Error] Unit1.cpp(22): E2325 Illegal octal digit”
