[英]how to send hexadecimal value in java to RS232 Serial port
我需要向我的微控制器發送一些命令。 我使用RXTX庫。 我可以連接到微控制器,但是在將命令轉換為正確的字節時遇到問題。
示例:我要發送0x80十六進制值。
如果我將128整數(0x80)轉換為字節
byte a = (byte) 128;
我得到-128
Java字節的范圍是-128 - 127
但我需要發送128作為命令。 我該如何轉換?
我也有其他命令要發送。
80
20 F2 40 F8 3F
FA 21 40
其中之一是40位。
我寫到outputstream,可以接受byte[]
或int
。
...
static OutputStream out;
out.write(byte[]);
out.write(int);
..
但是int超出40bit范圍。 如何將40位整數解析為一個字節?
不管Java的帶符號字節類型系統將其顯示為什么,0x80仍然是0x80。
只是發送。
我認為RXTX自由庫已經使用很久了,所以我認為這很重要。 只需發送string.getBytes()
您可以使用
Byte.parseByte("a", 16);
但這僅適用於最大為127的值,由於有符號/無符號問題,該值必須高於該值才能轉換為字節,因此我建議將其轉換為int然后轉換為字節
(byte) (Integer.parseInt("ef",16) & 0xff);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.