找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9374|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

串口發(fā)送數(shù)據(jù)的形式:字符串和十六進(jìn)制發(fā)送的區(qū)別

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-29 17:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
                       

在使用串口發(fā)送數(shù)據(jù)時可以選擇字符串發(fā)送或者十六進(jìn)制發(fā)送,通常情況下我們習(xí)慣選用字符串發(fā)送數(shù)據(jù)。關(guān)于兩者的區(qū)別,需要從計算機(jī)存儲數(shù)據(jù)的格式說起。

       在計算機(jī)中,數(shù)據(jù)是以二進(jìn)制的形式存儲的,例如十進(jìn)制 1(10)在計算機(jī)中用 00000001(2)來表示。我們在用串口發(fā)送數(shù)據(jù)的時候首先將待數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的ASCII碼,然后再將這些ASCII碼按照二進(jìn)制的方式一位一位的發(fā)送出去。

例如我們要發(fā)送一串?dāng)?shù)據(jù)“A852010100000000A91A”,以字符串和十六進(jìn)制兩種方式發(fā)送:

(1)字符串發(fā)送

         串口以字符串發(fā)送數(shù)據(jù),首先將字符串轉(zhuǎn)化為二進(jìn)制,格式如下:

        (A的ASCII碼是65,十六進(jìn)制是0x41,二進(jìn)制內(nèi)存為01000001)

01000001       ……  

             A

        然后按照8位(串口設(shè)置數(shù)據(jù)位為8位)形式將數(shù)據(jù)發(fā)送出去。

        串口接收的數(shù)據(jù)格式如下:

              

編號
數(shù)據(jù)內(nèi)容
編號
數(shù)據(jù)內(nèi)容
0
A
8
0
1
8
9
0
2
5
10
0
3
2
11
0
4
0
12
A
5
1
13
9
6
0
14
1
7
1
15
A

(2)十六進(jìn)制發(fā)送數(shù)據(jù)

         串口以十六進(jìn)制發(fā)送數(shù)據(jù),首先將數(shù)據(jù)轉(zhuǎn)化為:

          10101000    01100010    00000001    00000001   00000000   00000000    10101001    0001 1010

                0XA8           0X52              0X01             0X01             0X00            0X00             0XA9           0X1A

         然后按照8位(串口設(shè)置數(shù)據(jù)位為8位)形式將數(shù)據(jù)發(fā)送出去。

        串口接收的數(shù)據(jù)格式如下:

編號
數(shù)據(jù)內(nèi)容
編號
數(shù)據(jù)內(nèi)容
0
A8
4
00
1
52
5
00
2
01
6
A9
3
01
7
1A

         仔細(xì)對照接收結(jié)果就很容易明白字符串發(fā)送和十六進(jìn)制發(fā)送的區(qū)別了。

  


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表