|
在使用串口發送數據時可以選擇字符串發送或者十六進制發送,通常情況下我們習慣選用字符串發送數據。關于兩者的區別,需要從計算機存儲數據的格式說起。 在計算機中,數據是以二進制的形式存儲的,例如十進制 1(10)在計算機中用 00000001(2)來表示。我們在用串口發送數據的時候首先將待數據轉換為對應的ASCII碼,然后再將這些ASCII碼按照二進制的方式一位一位的發送出去。 例如我們要發送一串數據“A852010100000000A91A”,以字符串和十六進制兩種方式發送: (1)字符串發送 串口以字符串發送數據,首先將字符串轉化為二進制,格式如下: (A的ASCII碼是65,十六進制是0x41,二進制內存為01000001)
01000001 …… A 然后按照8位(串口設置數據位為8位)形式將數據發送出去。 串口接收的數據格式如下:
編號 | 數據內容 | 編號 | 數據內容 | 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)十六進制發送數據 串口以十六進制發送數據,首先將數據轉化為: 10101000 01100010 00000001 00000001 00000000 00000000 10101001 0001 1010 0XA8 0X52 0X01 0X01 0X00 0X00 0XA9 0X1A 然后按照8位(串口設置數據位為8位)形式將數據發送出去。 串口接收的數據格式如下:
編號 | 數據內容 | 編號 | 數據內容 | 0 | A8 | 4 | 00 | 1 | 52 | 5 | 00 | 2 | 01 | 6 | A9 | 3 | 01 | 7 | 1A |
仔細對照接收結果就很容易明白字符串發送和十六進制發送的區別了。
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|