轉自:http://blog.csdn.net/wityy/article/details/8234739
在使用序列槽發送資料時可以選擇字元串發送或者十六進制發送,通常情況下我們習慣選用字元串發送資料。關于兩者的差別,需要從計算機存儲資料的格式說起。
在計算機中,資料是以二進制的形式存儲的,例如十進制 1(10)在計算機中用 0000 0001(2)來表示。我們在用序列槽發送資料的時候首先将待資料轉換為對應的ASCII碼,然後再将這些ASCII碼按照二進制的方式一位一位的發送出去。
例如我們要發送一串資料“A852010100000000A91A”,以字元串和十六進制兩種方式發送:
(1)字元串發送
序列槽以字元串發送資料,首先将字元串轉化為二進制,格式如下:
0000 1010 0000 1000 0000 0110 0000 0010 0000 0000 0000 0001 0000 0000 0000 0001
A 8 5 2 0 1 0 1
0000 0000 0000 0000 0000 0000 0000 0000 0000 1010 0000 1001 0000 0001 0000 1010
0 0 0 0 A 9 1 A
然後按照8位(序列槽設定資料位為8位)形式将資料發送出去。
序列槽接收的資料格式如下:
編号 | 資料内容 | 編号 | 資料内容 |
A | 8 | ||
1 | 8 | 9 | |
2 | 5 | 10 | |
3 | 2 | 11 | |
4 | 12 | A | |
5 | 1 | 13 | 9 |
6 | 14 | 1 | |
7 | 1 | 15 | A |
(2)十六進制發送資料
序列槽以十六進制發送資料,首先将資料轉化為:
1010 1000 0110 0010 0000 0001 0000 0001 0000 0000 0000 0000 1010 1001 0001 1010
0XA8 0X52 0X01 0X01 0X00 0X00 0XA9 0X1A
然後按照8位(序列槽設定資料位為8位)形式将資料發送出去。
序列槽接收的資料格式如下:
編号 | 資料内容 | 編号 | 資料内容 |
A8 | 4 | 00 | |
1 | 52 | 5 | 00 |
2 | 01 | 6 | A9 |
3 | 01 | 7 | 1A |
仔細對照接收結果就很容易明白字元串發送和十六進制發送的差別了。