原创
串口接收二进制数的显示问题。
2008-7-31 09:38
4648
11
11
分类:
工业电子
串口通讯由于下位机一般都是MCU,不支持Unicode编码。我们采用二进制数据进行通讯。接收的数据为byte[]格式的字节串。而PC机的显示都是Unicode编码的string字符串。我们需要进行转化。
下面代码ToCharString()是byte[]格式的字节串转化成HEX十六进制数的显示方式。例如MCU发送“12345”,接收将显示“3132333435”。
ToCharString()是 byte[]格式的字节串转化成Unicode编码的string字符串的显示方式 。例如MCU发送“12345”,接收将显示“12345”。
static char[] hexDigits = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
public static string ToHexString(byte[] bytes)
{
char[] chars = new char[bytes.Length * 2];
for (int i = 0; i < bytes.Length; i++)
{
int b = bytes;
chars[i * 2] = hexDigits[b >> 4];
chars[i * 2 + 1] = hexDigits[b & 0xF];
}
return new string(chars);
}
public static string ToCharString(byte[] bytes)
{
char[] chars = new char[bytes.Length];
for (int i = 0; i < bytes.Length; i++)
{
chars[i ] = (char)bytes;
}
return new string(chars);
}
文章评论(0条评论)
登录后参与讨论