串口通信本質及中16進制轉10進制


 這篇隨筆最大的意義就是,串口通信的本質,如果為了人機交互方便,在控件textbox中輸入16進制,然后轉換成10機制或者0x0f是要轉換的順便說下,你可能感覺我說的晦澀,但是你實踐下,你給我打個int i=1F

,你就會明白我所說的意思了,所以還是要多實踐,所以人們發明了16進制表示法0x1f,int i =0x1f是沒問題的。

1首先定義一組16進制的數組,Ok這句話本身就有毛病,當然你可以這么寫 int i=0x4f,但是你轉換的時候會比較麻煩,

  所以你只能定義一個字符串組string[] str={"1f","2b"};

2開始轉換int result = int.Parse(str , System.Globalization.NumberStyles.AllowHexSpecifier);str必須是字符串

3 對 我們要轉換的是一組數據,在串口中都是一組數據的

foreach(string j in str)

{

     int result = int.Parse(j, System.Globalization.NumberStyles.AllowHexSpecifier);

      textbox.text+=result.tostring()+" ";//控制下格式

}

寫在最后:其實沒必要這么改的只不過你在和下位機通信的時候,比如接收數據按鈕,你要給下位機一個信號,下位機開始傳輸數據,這個信號時16進制的(顯示應該是16進制的),對16進制的,C#表示很無奈,只能定義成字符串組,字符串組發送是沒有意義的,所以要寫成"0xff"的格式,但這樣在控件中是不能寫成這樣的,所以還要轉換成"0xff"或者轉換成10進制,然后發送OK啦,10進制轉換成二進制開始傳輸,下位機得到數據開始轉換(二進制轉換成16進制);記住10進制的數值的二進制和16進制的數值的二進制是一樣的,他們都是以二進制傳輸的;ascii碼只是的符號,數值只是他的一個符號,沒有數值意義的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM