欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機串口的Hex發送 [打印本頁]

作者: 蓮蓬16    時間: 2018-10-9 21:50
標題: 單片機串口的Hex發送
  首先,底層的數據傳輸都是字節流,所以不管選擇什么方式,都會被分解為一個一個的字節。

      1、選擇Hex發送就代表你要發送的內容是純數字,由程序完成String到Int再到Byte的轉化。

           所以你應該保證每個你要發送的數都是兩位的,如果是7就應該寫07,因為程序會每兩位每兩位地讀。如果你選擇了Hex發送,而輸入的又是字符,比如你寫了ab,那么就會被程序讀為16進制的AB。這就是不同的概念了,無論你選擇什么方式顯示都不能得到原來的ab了。

      2、選擇ASCII發送就代表你要發送的是字符串,這時候程序就會一位一位地讀,比如你寫了1234,在字節流中傳遞的就是1234對應的ASCII碼,31,32,33,34(十六進制的)。比較而言,在Hex發送模式下,寫了1234,會被發送的就是12,34,如果是01020304那就是01,02,03,04。這個時候,你寫ab就會發送相應的ASCII碼61,62,其他字符同理。

               到這里,數據已經發送出去了,接下來就是顯示的問題。是顯示模式,不是解析,不存在解析。

      3、選擇Hex顯示就是把字節轉化為16進制整型,你收到的是12,34,就顯示為12,34,你收到31,32,33,34,也顯示為31,32,33,34,如果收到AB呢,那也是AB。

       4、選擇ASCII顯示呢,就會把你接收到的十六進制轉化為對應的字符,比如你收到了31,就會顯示為1。這種模式下可能會出現亂碼,原因就是ASCII碼只從0-7f。如果你在十六進制發送模式下發送了字符,比如發送了ab,那你就會收到AB,這個并沒有ASCII碼對應的字符。

            所以在Hex模式下如果輸入字符,是無論如何接收不到正確的數據的,其他方式那就隨意了。重要的是,方式的選擇改變的不是數據本身,而是數據的表現形式。

           說明:數據本身還是最原始的字節流,至于選擇HEX顯示還是ASCII碼顯示,只是不同的形式,改變不了數據的本質

作者: outing逆旅    時間: 2018-10-10 21:34
把我看糊涂了,最基礎的知識才是最牛逼厲害的。【贊】
作者: zyyjjww    時間: 2018-10-11 23:10
樓主有代碼分享嗎?最近在學習這個

作者: doube08    時間: 2018-10-12 09:42
鏈接失效了啊

作者: 殤心玨    時間: 2018-11-27 21:49
謝謝樓主
作者: 從前有只喵嗚    時間: 2019-10-8 21:23
學習下哈哈哈
作者: fefen0    時間: 2021-5-3 14:58
說了半天沒說明白啊
作者: todaljy    時間: 2022-6-30 07:56
不管怎么變化,孫悟空就是孫悟空。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1